def add_focus_ad(): """ 添加焦点广告 :return: """ browser.find_element_by_css_selector( "button[data-url *= '/seo/ad/create?type=1&postion_id=3&city=0']" ).click() locator = (By.NAME, "title") titleInput = focusSetInst.wait_element_visible(locator) if titleInput is not False: titleInput.send_keys("好水任你喝") browser.find_element_by_name("jump_url").send_keys( "http://wechat6.t-lianni.com/") browser.find_element_by_id("reservationtime").send_keys( "2018/10/26 09:00:00 - 2018/10/28 09:00:00 ") browser.find_element_by_css_selector( ".applyBtn.btn.btn-small.btn-sm.btn-success").click() browser.find_element_by_name("sort").send_keys("106") # 上传文件 import os time.sleep(1) # browser.find_element_by_css_selector(".fa.fa-paperclip").click() # browser.find_element_by_css_selector("btn.btn-default.btn-file").click() browser.find_element_by_css_selector( "#adForm > div:nth-child(8) > div").click() os.system("upfile.exe") else: pass
def select_time(timeType="下单时间", dateType="全部"): """ 时间选择 :param timeType: 1.下单时间 2.派单时间 3.付款时间 4.完成时间 :param userDefined: 0.今日 1.昨日 2.最近7日 3.最近30日 4.全部 5.自定义 :return: """ dateDict = {"今日": 0, "昨日": 1, "最近7日": 2, "最近30日": 3, "全部": 4, "自定义": 5} Select(browser.find_element_by_name("time_type")).select_by_visible_text( timeType) try: browser.find_element_by_id("reservationtime").click() timeInput = browser.find_elements_by_css_selector("div.ranges>ul>li") if len(timeInput) > 0: timeInput[dateDict[dateType]].click() if dateDict[dateType] < 5: # 指定时间:今日、昨日、最近7日、最近30日、全部 pass else: # 自定义时间 time.sleep(1) startTime = browser.find_element_by_name( "daterangepicker_start") startTime.clear() startTime.send_keys("2018-01-01 00:00:00") endTime = browser.find_element_by_name("daterangepicker_end") endTime.clear() endTime.send_keys("2018-11-06 10:30:00") browser.find_element_by_css_selector( ".applyBtn.btn.btn-small.btn-sm.btn-success").click() except Exception: pass
def filter_condition(): """ 全部买家 搜索 :return: """ # 选择过滤条件 from time import sleep sleep(2) Select(browser.find_element_by_name("interest")).select_by_visible_text( "已关注") # 关注状态 Select(browser.find_element_by_name("pstatus")).select_by_visible_text( "已认证") # 认证手机状态 Select(browser.find_element_by_name("status")).select_by_visible_text( "用户状态") # 用户状态 Select(browser.find_element_by_name("source")).select_by_visible_text( "微信") # 注册类型 Select(browser.find_element_by_name("city")).select_by_visible_text( "成都市") # 全部城市 browser.find_element_by_css_selector( "input[name = 'starttime']").send_keys("2018-01-01 00:00:00") browser.find_element_by_css_selector("input[name = 'endtime']").send_keys( "2018-10-20 00:00:00") # 点击搜索按钮 browser.find_element_by_css_selector(".fa.fa-search").click() # 通过类名查找搜索按钮
def search_setting(): time.sleep(2) # 选择桶装水 Select(browser.find_element_by_name("category")).select_by_visible_text("桶装水") # 桶类型,是否押金 Select(browser.find_element_by_name("deposit")).select_by_visible_text("免桶押金") # 输入商品ID browser.find_element_by_css_selector("input[placeholder = '商品编号/名称']").send_keys("6616") time.sleep(2) # 确定搜索 browser.find_element_by_css_selector(".fa.fa-search").click() # class = "fa fa-search"空格使用.代替
def filter_condition(status = "活动状态"): """ 搜索:选择过滤条件 :return: """ browser.find_element_by_name("starttime").send_keys("2018-10-01 00:00:00") # 输入搜索字段 # browser.find_element_by_id("dpOkInput").click() browser.find_element_by_name("endtime").send_keys("2018-10-31 23:59:59") # 输入搜索字段 # browser.find_element_by_id("dpOkInput").click() # 点击搜索按钮 browser.find_element_by_css_selector(".fa.fa-search").click() # 通过类名查找搜索按钮
def filter_condition(): """ 搜索:选择过滤条件 :return: """ Select(browser.find_element_by_name("status")).select_by_visible_text( "已结束") # 活动状态 Select(browser.find_element_by_name("type")).select_by_visible_text("请选择") # browser.find_element_by_name("key").send_keys("") # 输入搜索字段 # 点击搜索按钮 browser.find_element_by_css_selector(".fa.fa-search").click() # 通过类名查找搜索按钮
def select_status(type="平台", status="交易完成"): """ 状态: :param type: 订单类型,平台/店铺 :param status: 订单状态,等待付款/交易关闭/等待派单/待成团/等待配送/配送中/交易完成,结合type使用 :return: """ Select(browser.find_element_by_name("type")).select_by_visible_text(type) time.sleep(0.5) Select( browser.find_element_by_name("status")).select_by_visible_text(status) browser.find_element_by_css_selector(".fa.fa-search").click() # 通过类名查找搜索按钮
def select_label(*labelType): labelDict = { '预约': 'label_reserve', '新用户': 'label_newuser', '大客户': 'label_large', '抢购': 'label_seckill', '线下': 'label_offline', '团购': 'label_groupbuy', '水票': 'label_watiki' } # new_dict = {v: k for k, v in labelDict.items()} # 字典键值翻转 for label in labelType: browser.find_element_by_name(labelDict[label]).click()
def refund_watiki(): refundBtn = browser.find_elements_by_css_selector(".fa.fa-mail-reply-all") if len(refundBtn) > 0: refundBtn[0].click() browser.find_element_by_css_selector("input[name = 'money']").send_keys("0") Select(browser.find_element_by_name("reason")).select_by_visible_text("商品下架/缺货") Select(browser.find_element_by_name("refundBonuses")).select_by_visible_text("退还") # browser.find_element_by_css_selector(".btn.btn-primary").click() browser.find_element_by_id("adFormBut").click() time.sleep(2) orderWatikiInst.close_SweetAlert() else: pass
def filter_condition(): """ 搜索:选择过滤条件 :return: """ from time import sleep sleep(2) Select(browser.find_element_by_name("status")).select_by_visible_text( "正常") # 用户状态 Select( browser.find_element_by_name("type")).select_by_visible_text("配送中心名称") browser.find_element_by_name("key").send_keys("南宁") # 输入搜索字段 # 点击搜索按钮 browser.find_element_by_css_selector(".fa.fa-search").click() # 通过类名查找搜索按钮
def modify_deliveryPoint(): """ 修改配送点 :return: """ modifyBtn = browser.find_elements_by_css_selector( "button[data-url *= '/users/delivery_point/modify/10640']") if len(modifyBtn) > 0: modifyBtn[0].click() time.sleep(1) browser.find_element_by_name("remarks").send_keys("什么也不想改") browser.find_element_by_id("sendpointBut").click() deliveryPointInst.close_SweetAlert() else: pass
def select_area(manager="城西区-周莉", director="城西区-陈健", shopName="城西秀灵路配送点"): """ 区域: :param manager: 区域经理 :param director:区域主管 :param shopName: 所属区域 :return: """ Select(browser.find_element_by_name("manager")).select_by_visible_text( manager) time.sleep(0.5) Select(browser.find_element_by_name("director")).select_by_visible_text( director) time.sleep(0.5) Select( browser.find_element_by_name("area")).select_by_visible_text(shopName)
def create_bonus_activity(): """ 创建活动二维码 :return: """ browser.find_element_by_css_selector( "button[data-url *= '/bonus_activity/create']").click() locator = (By.ID, "activityname") nameInput = bonusActivityInst.wait_element_visible(locator) if nameInput is not False: nameInput.send_keys("测试定时器-红包活动状态") # 获取当前时间,便于调试,否则直接输入时间比较方便 import datetime curTiem = datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S') delayTime = datetime.datetime.now() + datetime.timedelta(minutes=3) delayTimeD = delayTime.strftime('%Y-%m-%d %H:%M:%S') reservationTime = curTiem + " - " + delayTimeD print(reservationTime) browser.find_element_by_id("reservationtime").send_keys( reservationTime) browser.find_element_by_css_selector( ".applyBtn.btn.btn-small.btn-sm.btn-success").click() Select(browser.find_element_by_name( "activityobject")).select_by_visible_text("不限") browser.find_element_by_id("bonus").send_keys("10086") browser.find_element_by_id("bonusnum").send_keys("2") browser.find_element_by_id("activityBut").click() # 提交后,操作成功与否均会返回操作结果 bonusActivityInst.onclick_confirm() else: pass
def add_deliveryMan(): browser.find_element_by_css_selector( "button[data-url $= '/users/delivery_man/add']").click() locator = (By.CSS_SELECTOR, ".form-control.nickname") nameInput = deliveryManInst.wait_element_visible(locator) if nameInput is not False: nameInput.send_keys("城东祥宾-袁渣渣") else: pass browser.find_element_by_css_selector(".form-control.phone").send_keys( "19914863531") browser.find_element_by_css_selector(".form-control.loginpass").send_keys( "a123456") browser.find_element_by_css_selector("input[name = 'level']").click() Select(browser.find_element_by_id("province")).select_by_visible_text("广西") time.sleep(1) Select( browser.find_element_by_css_selector( ".form-control.marginright.city")).select_by_visible_text("南宁市") time.sleep(1) Select(browser.find_element_by_name("shop")).select_by_visible_text( "城东祥宾路配送点") # 10209 browser.find_element_by_css_selector( "input[name = 'usersort'][value = '2']").click() browser.find_element_by_css_selector("input[name = 'remarks']").send_keys( "自动添加") browser.find_element_by_id("adddeliveryBut").click() deliveryManInst.close_SweetAlert()
def select_order(key="商品名称", val="茶花山"): """ 订单: :param key:订单编号/支付编号/商品ID/商品名称 :param val: 请输入关键字,结合key值 :return: """ Select(browser.find_element_by_name("key")).select_by_visible_text(key) browser.find_element_by_css_selector("input[name = 'val']").send_keys(val)
def search_setting(): time.sleep(2) # 选择商品状态 Select( browser.find_element_by_name("status")).select_by_visible_text("已下架") # 选择桶装水 Select( browser.find_element_by_name("category")).select_by_visible_text("桶装水") #新用户优惠 Select(browser.find_element_by_name("preferences")).select_by_visible_text( "参加") # 输入商品ID browser.find_element_by_css_selector( "input[placeholder = '商品编号/名称']").send_keys("6566") time.sleep(2) # 确定搜索 browser.find_element_by_css_selector( ".fa.fa-search").click() # class = "fa fa-search"空格使用.代替
def sale_warehouse_goods(): """ 给商品铺货 :return: """ forward_warehouse_detail() browser.find_element_by_css_selector( "button[data-url *= '/users/warehouse/458208/sale']").click() browser.find_element_by_css_selector( "input.select2-search__field").send_keys("6663") time.sleep(0.5) locator = (By.CSS_SELECTOR, "ul.select2-results__options>li") WebDriverWait(browser, 2).until(EC.visibility_of_any_elements_located(locator)) goodsList = browser.find_elements_by_css_selector( "li[class^='select2-results__option']") # 类名以value值开头 if len(goodsList) > 0: if goodsList[0].text == "未找到结果": print("未找到结果,输入的商品名称/ID不存在") else: goodsList[0].click() locator = (By.CSS_SELECTOR, "div.sweet-alert.showSweetAlert.visible") print( "*********", time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))) saleFlag = warehouseInst.wait_element_visible(locator, 2) print("*********", time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))) # 最多应该是5s,为啥是10s print("*********", saleFlag) if saleFlag is not False: warehouseInst.close_SweetAlert() browser.refresh() else: browser.find_element_by_name("supplierPrice").send_keys("3.33") browser.find_element_by_name("warehousePrice").send_keys( "4.44") browser.find_element_by_id("goodsFormBut").click() time.sleep(1) warehouseInst.close_SweetAlert() else: print("没有输入")
def set_Para(addTyte=1, watikiType=1): """ 添加水票/套餐弹窗的参数选项设置 :param addTyte: 添加水票/套餐 ;1 = 套餐,2 = 水票 :param watikiType: 水票类型 ;1 = 专用,2 = 通用 :return: """ if addTyte == 1: #添加套餐 pass elif addTyte == 2: if watikiType == 2: #通用水票 import time time.sleep(2) browser.find_element_by_id("ticktype2").click() # 水票类型,通用 Select(browser.find_element_by_name( "ticket_num")).select_by_visible_text("18") # 水票名称 browser.find_element_by_css_selector( ".select2-search__field").send_keys("巴马") else: browser.find_element_by_css_selector( ".select2-search__field").send_keys("6616") else: print("error parameter !!! ") # 等待显示搜索结果 import time time.sleep(1) locator = (By.CSS_SELECTOR, "ul.select2-selection__rendered>li") goodWatikiInst.wait_element_visible(locator, 2) goodWatikiList = browser.find_elements_by_css_selector( "li[class^='select2-results__option']") # 类名以value值开头 goodWatikiList[0].click() # 共用设置的参数选项 browser.find_element_by_id("package_name").send_keys( "买2送1,超值套餐!!") # 套餐名,选填 Select(browser.find_element_by_name("priceid")).select_by_visible_text( "买9送1") # 水票信息 browser.find_element_by_name("sales").send_keys("0.01") # 水票促销价 settleNumEle = browser.find_element_by_name("settlenum") # 起送数量 settleNumEle.clear() settleNumEle.send_keys("2") browser.find_element_by_id("preferences").click() # 参加新用户优惠
def add_supplier(): """ 添加供应商 :return: """ browser.find_element_by_css_selector( "button[data-url *= '/users/supplier/add']").click() locator = (By.CSS_SELECTOR, "input[placeholder = '供应商名称']") inputName = supplierInst.wait_element_visible(locator) if inputName is not False: inputName.send_keys("巴马活泉") browser.find_element_by_css_selector( "input[placeholder = '认证手机']").send_keys("18914863531") Select(browser.find_element_by_id("province")).select_by_visible_text( "广西") time.sleep(0.5) Select( browser.find_element_by_id("city")).select_by_visible_text("南宁市") browser.find_element_by_css_selector( "input[placeholder = '详细地址']").send_keys("金湖路55号亚航财富中心29层") browser.find_element_by_css_selector( "input[placeholder = '登录密码']").send_keys("123456") browser.find_element_by_css_selector( "input[placeholder = '提现密码']").send_keys("123456") browser.find_element_by_css_selector( "input[placeholder = '开户人姓名']").send_keys("袁渣渣") Select(browser.find_element_by_name("bank")).select_by_visible_text( "建设银行") Select(browser.find_element_by_name( "account_type")).select_by_visible_text("对私") browser.find_element_by_css_selector( "input[name = 'cardID']").send_keys("6227000011040161024") browser.find_element_by_css_selector( "input[name = 'cardadr']").send_keys("大柳树支行") browser.find_element_by_css_selector( "input[name = 'inter_code']").send_keys("986357") browser.find_element_by_css_selector( "input[name = 'remarks']").send_keys("自动添加") browser.find_element_by_id("addFormBut").click() supplierInst.close_SweetAlert() else: pass
def select_buyer(buyerKey="买家昵称", buyerVal="桃子"): """ 买家: :param buyerKey:买家ID/买家昵称/收货人手机 :param buyerVal:请输入关键字,结合 buyerKey 值 :return: """ Select(browser.find_element_by_name("buyer_key")).select_by_visible_text( buyerKey) browser.find_element_by_css_selector( "input[name = 'buyer_val']").send_keys(buyerVal)
def select_other(otherKey="配送区域ID", otherVal="82"): """ 其他 :param otherKey:配送区域ID/配送中心ID/配送中心名称/供应商ID/供应商名称/配送点ID/配送点名称 :param otherVal:请输入关键字,结合 otherKey 值 :return: """ Select(browser.find_element_by_name("other_key")).select_by_visible_text( otherKey) browser.find_element_by_css_selector( "input[name = 'other_val']").send_keys(otherVal)
def add_goods(): # 添加商品 browser.find_element_by_css_selector("div.box-tools").click() # 等待页面加载 # locator = (By.CSS_SELECTOR,"form-control.categorysmall") # WebDriverWait(browser,5).until(EC.visibility_of_element_located(locator)) time.sleep(2) Select(browser.find_element_by_name("second_cid")).select_by_visible_text("瓶装水") Select(browser.find_element_by_name("goods_brands_id")).select_by_visible_text("百崖禄桂") browser.find_element_by_id("goodsname").send_keys("百崖禄桂桶装水18L-tz") # 默认是免桶押金 browser.find_element_by_css_selector("input[value='2']").click() # 上传图片 """ # https://jingyan.baidu.com/article/925f8cb8df6f11c0dde056c1.html # https://www.cnblogs.com/fnng/p/4188162.html : selenium借助AutoIt识别上传(下载)详解 """ import os browser.find_element_by_css_selector("object#SWFUpload_0").click() os.system("upfile.exe") # 向富文本编辑器输入内容 https://blog.csdn.net/ever_mwumli/article/details/77945844 # 首先定位到最外面的 iframe 框架: iframe = browser.find_element_by_css_selector("iframe.ke-edit-iframe") # 进入 iframe 框架 browser.switch_to_frame(iframe) # 定位输入框写入内容 browser.find_element_by_css_selector("body.ke-content").send_keys("新品上市") # 退出 iframe 框架 browser.switch_to_default_content() # 点击提交后,有可能弹窗提示成功 time.sleep(15) updategoods = browser.find_element_by_css_selector(".btn.btn-primary.materialok") # updategoods = browser.find_element_by_id("updategoods") 使用id可以定位到,但是无法提交 print(updategoods.text) updategoods.click() print("*****") close_ok_window()
def filter_condition(): # 选择过滤条件 from time import sleep sleep(5) Select( browser.find_element_by_name("status")).select_by_visible_text("售卖中") Select(browser.find_element_by_name("watikitype")).select_by_visible_text( "专用水票") Select(browser.find_element_by_name("preferences")).select_by_visible_text( "新用户优惠") Select(browser.find_element_by_name("type")).select_by_visible_text("商品名称") browser.find_element_by_css_selector( "#form > div:nth-child(5) > input").send_keys("花果山") browser.find_element_by_css_selector( "input[name = 'starttime']").send_keys("2018-01-01 00:00:00") browser.find_element_by_css_selector("input[name = 'endtime']").send_keys( "2018-10-10 00:00:00") # 点击搜索按钮 browser.find_element_by_css_selector(".fa.fa-search").click() # 通过类名查找搜索按钮
def filter_condition(): """ 已售出平台水票 搜索 :return: """ # 选择过滤条件 from time import sleep sleep(2) Select(browser.find_element_by_name("category")).select_by_visible_text("专用水票") # 水票类型 Select(browser.find_element_by_name("source")).select_by_visible_text("手动生成") # 水票来源 Select(browser.find_element_by_name("status")).select_by_visible_text("交易完成") # 水票状态 Select(browser.find_element_by_name("type")).select_by_visible_text("供货商品名称") # 查询类型 browser.find_element_by_css_selector("input[name = 'key']").send_keys("花果山") #请输入关键字 browser.find_element_by_css_selector("input[name = 'timename']").click() # 下单时间 time.sleep(1) timeList = browser.find_elements_by_css_selector("div.ranges>ul>li") if len(timeList) > 0: timeList[4].click() else: pass # 点击搜索按钮 browser.find_element_by_css_selector(".fa.fa-search").click() # 通过类名查找搜索按钮
def search_comment(): print("search_comment start calling...") # 选择完成时间为最近30日 Select(browser.find_element_by_name("timeType")).select_by_visible_text( "完成时间") browser.find_element_by_css_selector( "input[placeholder='请选择时间区间']").click() time.sleep(1) timeList = browser.find_elements_by_css_selector( "div[class='ranges']>ul>li") # 查找下拉框所有可选的选项 if len(timeList) > 0: timeList[3].click() else: print("error") #点击搜索按钮 browser.find_element_by_css_selector(".fa.fa-search").click() # 通过类名查找搜索按钮
def add_deliveryPoint(): browser.find_element_by_css_selector( "button[data-url *= '/users/delivery_point/add']").click() locator = (By.CSS_SELECTOR, "input[name = 'phone']") inputPhone = deliveryPointInst.wait_element_visible(locator) if inputPhone is not False: inputPhone.send_keys("18914863532") browser.find_element_by_name("loginpass").send_keys("123456") Select( browser.find_element_by_name("city")).select_by_visible_text("南宁市") time.sleep(0.5) Select(browser.find_element_by_name( "distribution")).select_by_visible_text("南宁配送中心") browser.find_element_by_id("type1").click() browser.find_element_by_name("remarks").send_keys("程序添加的") browser.find_element_by_id("sendpointBut").click() deliveryPointInst.close_SweetAlert() # 完善信息 browser.find_element_by_id("Storename").send_keys("金湖配送点") browser.find_element_by_id("range").send_keys("100") browser.find_element_by_id("address").send_keys("金湖路55号亚航财富中心29层") # 向富文本框输入内容 # 首先定位到最外面的 iframe 框架: iframe = browser.find_element_by_css_selector("iframe.ke-edit-iframe") # 进入 iframe 框架 browser.switch_to_frame(iframe) # 定位输入框写入内容 browser.find_element_by_css_selector("body.ke-content").send_keys( "自动化添加测试") # 退出 iframe 框架 browser.switch_to_default_content() saveBtn = browser.find_element_by_id("shopFormBtn") while True: # 点击多次保存才生效,不懂为啥 saveBtn.click() locator = (By.CSS_SELECTOR, "div.sweet-alert.showSweetAlert.visible") sucessFlag = deliveryPointInst.wait_element_visible(locator) if sucessFlag is False: continue else: deliveryPointInst.close_SweetAlert() break browser.back() else: pass
def filter_condition(): """ 配送员 搜索 :return: """ # 选择过滤条件 from time import sleep sleep(2) Select(browser.find_element_by_name("status")).select_by_visible_text( "全部状态") # 用户状态 Select(browser.find_element_by_name("workstatus")).select_by_visible_text( "接单中") # 接单状态 Select(browser.find_element_by_name("level")).select_by_visible_text( "普通") # 配送员职级 Select(browser.find_element_by_name("type")).select_by_visible_text( "绑定配送点ID") # 查询字段 browser.find_element_by_name("key").send_keys("10333") # 输入搜索字段 # 点击搜索按钮 browser.find_element_by_css_selector(".fa.fa-search").click() # 通过类名查找搜索按钮