def setDetail(self, needtimes): ''' 设置商品详情 ''' # 点击下一步 pigcms.find_element_by_css_selector('.nextbtn').click() pigcms.switch_to.frame(pigcms.find_element_by_css_selector('.edui-editor-iframeholder.edui-default iframe')) pigcms.find_element_by_tag_name('body').click() pigcms.find_element_by_tag_name('body').send_keys(goodsData[needtimes+1][2]) pigcms.switch_to.parent_frame() # 保存 pigcms.find_element_by_css_selector('.ml40').click()
def setActivite(self, times): # 获取所有元素 get_formele = pigcms.find_elements_by_css_selector('.turntip.flex')[:4] # 输入活动名称 get_formele[0].find_element_by_tag_name('input').send_keys( '老妖拼团第{}弹'.format(times)) # 输入活动时间 from automation.qingxiaoyun.common import timeSet timeset = timeSet(5) # 设置参团人数 get_formele[2].find_element_by_tag_name('input').send_keys( choice(range(501)[1:501])) # 设置限购 if choice(range(2)) == 0: # 去除限购设置 pigcms.find_element_by_css_selector( '.el-checkbox.is-checked').click() else: get_formele[3].find_element_by_tag_name('input').send_keys('2')
def timeSet(days=7): ''' 设置开始时间 days参数是指活动周期天数默认7天 调用时只要直接调用函数即可操作点击输入框并选择时间输入 ''' # 点击开始时间框 pigcms.find_elements_by_css_selector( '.el-date-editor--datetime')[0].click() # 设置活动开始时间 pigcms.find_element_by_css_selector('.el-button--text').click() # 设置结束时间 # 点击结束时间框 pigcms.find_elements_by_css_selector( '.el-date-editor--datetime')[1].click() # 点击可选时间段第days天的时间点 pigcms.find_elements_by_css_selector('.el-picker-panel__content')[1].\ find_elements_by_css_selector('.available')[days].click() pigcms.find_elements_by_css_selector('.is-plain')[1].click() return 'success'
def baseSet(self, needtimes): # 输入具体内容 get_element = pigcms.find_elements_by_css_selector('.bascInfo .turntip.flex') # 输入商品名称 get_element[0].find_element_by_css_selector('.el-input__inner').send_keys(goodsData[needtimes+1][0]) # 获取已存在的分组内容检测是否需要新建 get_element[1].find_element_by_css_selector('.el-input--suffix').click() groupsele = pigcms.find_elements_by_css_selector('.el-select-dropdown__item') try: grouplist = [] for group in groupsele: grouplist.append(group.text) index = grouplist.index(groupName[:2]) except: # 如果触发异常说明不存在需要创建的分组手动创建 pigcms.find_elements_by_css_selector('.cp.maincl.ml20')[1].click() pigcms.find_elements_by_css_selector('.inpBox.title.clearfix')[0] \ .find_element_by_css_selector('.el-input__inner').send_keys(groupName[:2]) pigcms.find_elements_by_css_selector('.popbtns button')[0].click() # 元素失效重新获取 get_element = pigcms.find_elements_by_css_selector('.bascInfo .turntip.flex') get_element[1].find_element_by_css_selector('.el-select--small').click() groupsele = pigcms.find_elements_by_css_selector('.el-select-dropdown__item') grouplist = [] for group in groupsele: grouplist.append(group.text) index = grouplist.index(groupName[:2]) groupsele[index].click() pigcms.find_element_by_css_selector('.el-select.el-select--small').click() else: groupsele[index].click() pigcms.find_element_by_css_selector('.el-select.el-select--small').click() # 计量单位输入 get_element[2].find_element_by_css_selector('.el-input__inner').send_keys('件') # 图片上传 pigcms.find_elements_by_css_selector('.el-button.el-button--primary')[1].click() imagedir = os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) + \ '\\' + 'auth' + '\\' + 'static' + '\\' + 'goods' + '\\' + goodsData[needtimes+1][1] upresult = updateImage(groupName[:2], imagedir)
def inventory(self, style): ''' 设置商品价格库存等信息 ''' # 获取所有表单列元素 if style == 0: # 选择单规格 pigcms.find_elements_by_css_selector('.skuGui .el-radio')[style].click() # 获取所有元素列表 get_element = pigcms.find_elements_by_css_selector('.skuGui .specSet .turntip.flex') # 商品编码 rannumber = ranNumber(6) get_element[0].find_element_by_css_selector('.el-input__inner').send_keys(rannumber) # 商品价格 price = '0.01' get_element[1].find_element_by_css_selector('.el-input__inner').send_keys(price) # 商品划线价 line_pirce = ranNumber(2) get_element[2].find_element_by_css_selector('.el-input__inner').send_keys(line_pirce) # 当前库存量 get_element[3].find_element_by_css_selector('.el-input__inner').send_keys(50) # 商品重量 get_element[4].find_element_by_css_selector('.el-input__inner').send_keys(5) else: # 选择多规格 pigcms.find_elements_by_css_selector('.skuGui .el-radio')[style].click() # 添加规格 pigcms.find_element_by_css_selector('.el-button.mb20.el-button--default.el-button--small').click() # 输入第一个规格名和值 pigcms.find_elements_by_css_selector('.addSpec.mb30 .turntip.flex')[0].\ find_element_by_css_selector('.el-input__inner').send_keys('规格一') pigcms.find_elements_by_css_selector('.addSpec.mb30 .turntip.flex')[1]. \ find_element_by_css_selector('.el-input__inner').send_keys('初选_1') pigcms.find_elements_by_css_selector('.addSpec.mb30 button')[0].click() # 输入第二个规格名和值 pigcms.find_element_by_css_selector('.el-button.mb20.el-button--default.el-button--small').click() pigcms.find_elements_by_css_selector('.addSpec.mb30 .turntip.flex')[0]. \ find_element_by_css_selector('.el-input__inner').send_keys('规格二') pigcms.find_elements_by_css_selector('.addSpec.mb30 .turntip.flex')[1]. \ find_element_by_css_selector('.el-input__inner').send_keys('再选_1') pigcms.find_elements_by_css_selector('.addSpec.mb30 button')[0].click() # 编辑详细规格 pigcms.find_elements_by_css_selector('.spec')[0].\ find_element_by_css_selector('.el-input__inner').send_keys('初选_2') pigcms.find_elements_by_css_selector('.spec')[0].find_element_by_tag_name('button').click() pigcms.find_elements_by_css_selector('.spec')[1]. \ find_element_by_css_selector('.el-input__inner').send_keys('再选_2') pigcms.find_elements_by_css_selector('.spec')[1].find_element_by_tag_name('button').click() # 批量设置所有规格价格内容 rannumber = ranNumber(6) pigcms.find_elements_by_css_selector('.flex.allSet.mb20 .el-input__inner')[0].send_keys(rannumber) price = '0.01' pigcms.find_elements_by_css_selector('.flex.allSet.mb20 .el-input__inner')[1].send_keys(price) pigcms.find_elements_by_css_selector('.flex.allSet.mb20 .el-input__inner')[2].send_keys(ranNumber(2)) pigcms.find_elements_by_css_selector('.flex.allSet.mb20 .el-input__inner')[3].send_keys(50) pigcms.find_elements_by_css_selector('.flex.allSet.mb20 .el-input__inner')[4].send_keys(2) pigcms.find_element_by_css_selector('.flex.allSet.mb20 button').click()
def updateImage(groupName, imagedir): getGroupslistele = pigcms.find_elements_by_css_selector( '.li.typename.clearfix') is_group = True for groupele in getGroupslistele: if groupName in groupele.text: groupele.click() is_group = False break if is_group: # 添加分组 pigcms.find_element_by_css_selector( '.el-icon-circle-plus-outline').click() pigcms.find_element_by_css_selector('.setAddClassify input').send_keys( groupName) pigcms.find_element_by_css_selector('.el-icon-circle-check.i1').click() pigcms.find_elements_by_css_selector( '.li.typename.clearfix')[-1].click() # 选中创建的分组 getGroupslistele = pigcms.find_elements_by_css_selector( '.li.typename.clearfix') for groupele in getGroupslistele: if groupName == groupele.text: groupele.find_element_by_tag_name('em').click() break # 上传图片操作 pigcms.find_element_by_css_selector('.el-upload__input').send_keys( imagedir) # 选择上传的图片 is_uped = True while is_uped: import time time.sleep(1) is_show = pigcms.find_elements_by_css_selector( '.thinScrollbarMy li')[0].text if is_show == imagedir[-12:]: get_imglist = pigcms.find_elements_by_css_selector( '.thinScrollbarMy li') for img in get_imglist: if imagedir[-12:] == img.text: img.click() is_uped = False break else: print('图片未上传成功继续等待...') return 'success'
# 进入商城内容 app.click() break i += 1 # 获取商城所有菜单 menu = applicationlist[i].find_elements_by_css_selector('.el-menu-item') # 进入商城管理 menu[0].click() # 添加商品 groupName = input('输入一个商品分类及数量(如:男装 12):') # 调用爬虫函数 goodsData = goodsSipder(groupName[:2], 'goods', int(groupName[-2:])) ''' 添加数据操作 首先人工确定需要添加数据的条数 然后使用爬去的数据填充内容进行添加测试 ''' for i in range(int(groupName[-2:])): # 点击添加按钮 pigcms.find_element_by_css_selector('.topOpaa.mb20.flex.flex-pack-justify button').click() # 初始化 addgoods = AddGoods() # 填写表单 addgoods.baseSet(i) from random import choice style = choice(range(2)) addgoods.inventory(style) addgoods.setLogistics() addgoods.setDetail(i) pigcms.quit()