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 create_seckill(): """ 添加新活动 :return: """ browser.find_element_by_css_selector( "button[data-url *= 'seckill/create']").click() locator = (By.ID, "goodsId") goodsIDInput = seckillInst.wait_element_visible(locator) if goodsIDInput is not False: goodsIDInput.send_keys("6673") print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))) browser.find_element_by_id("scarePrice").send_keys("0.01") # 如果上已经下架/隐藏中/未发布会弹窗提示错误 locator = (By.CSS_SELECTOR, ".sweet-alert.showSweetAlert.visible") Alert_ele = seckillInst.wait_element_visible(locator) print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))) if Alert_ele is not False: # 1.商品已经下架,输入商品ID时提示 print(Alert_ele.text) locator = ".sa-confirm-button-container" browser.find_element_by_css_selector(locator).click() browser.refresh() else: # 2.商品有进行中的活动,提交时提示“添加失败” # 3.商品首次添加活动,或者活动已经结束 browser.find_element_by_id("scareNum").send_keys("1") browser.find_element_by_id("starttime").send_keys( "2018-11-01 00:00:00") browser.find_element_by_id("endtime").send_keys( "2018-11-11 23:59:59") browser.find_element_by_id("scareBut").click() seckillInst.close_SweetAlert() else: pass
def edit_bonus_activity(): filter_condition(status="未开始") editBtn = browser.find_elements_by_css_selector( "button[data-url *= '/bonus_activity/edit']") if len(editBtn) > 0: editBtn[0].click() locator = (By.ID, "activityname") nameInput = bonusActivityInst.wait_element_visible(locator) if nameInput is not False: nameInput.clear() nameInput.send_keys("红包活动状态-编辑") reservationTime = "2018/11/05 15:30:12 - 2018-11-15 15:40:12" browser.find_element_by_id("reservationtime").send_keys( reservationTime) browser.find_element_by_css_selector( ".applyBtn.btn.btn-small.btn-sm.btn-success").click() time.sleep(2) # 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("editActivityBut").click() # 提交后,操作成功与否均会返回操作结果 bonusActivityInst.onclick_confirm() else: pass 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 modify_workStatus(): modifyBtn = browser.find_elements_by_css_selector( "button[data-url *= '/users/delivery_man/modifyWorkStatus']") if len(modifyBtn) > 0: modifyBtn[0].click() time.sleep(1) browser.find_element_by_id("userssort1").click() browser.find_element_by_id("statusBut").click() deliveryManInst.close_SweetAlert() else: pass
def set_largeOrder(): browser.find_element_by_css_selector( "button[data-url $= '/users/delivery_man/large']").click() locator = (By.ID, "beginnumber") quantityInput = deliveryManInst.wait_element_visible(locator) if quantityInput is not False: quantityInput.clear() quantityInput.send_keys("5") browser.find_element_by_id("biguserBut").click() deliveryManInst.close_SweetAlert() else: pass
def exchange_watiki(): exchangeBtn = browser.find_elements_by_css_selector(".fa.fa-exchange") if len(exchangeBtn) > 0: exchangeBtn[0].click() browser.find_element_by_css_selector("input[name = 'watikiId']").send_keys("17103") browser.find_element_by_css_selector("input[name = 'usedWaterQuantity']").send_keys("0") browser.find_element_by_css_selector("input[name = 'remarks']").send_keys("自动化测试") # browser.find_element_by_css_selector(".btn.btn-primary").click() browser.find_element_by_id("makeorderBut").click() time.sleep(2) # orderWatikiInst.close_SweetAlert() else: pass
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 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 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 set_workTime(): browser.find_element_by_css_selector( "button[data-url *= 'users/delivery_man/workTime']").click() locator = (By.ID, "begintime") begintime = deliveryManInst.wait_element_visible(locator, 2) if begintime is not False: begintime.clear() begintime.send_keys("10:00") else: pass endtime = browser.find_element_by_id("endtime") endtime.clear() endtime.send_keys("19:30") browser.find_element_by_id("setsaveBut").click() deliveryManInst.close_SweetAlert()
def order_watiki(): eleList = browser.find_elements_by_css_selector(".fa.fa-arrows-v") if len(eleList) > 0: eleList[0].click() locator = (By.CSS_SELECTOR, ".form-control.sort") sortInput = ComOperation.wait_element_visible(locator, 2) print("sortInput is :", type(sortInput)) if sortInput is not None: sortInput.clear() sortInput.send_keys("301") browser.find_element_by_id("watersortBut").click() goodWatikiInst.close_SweetAlert() else: pass else: print("水票列表为空")
def additional_seckill(): """ 追加抢购活动 :return: """ browser.find_element_by_css_selector( "button[data-url *= '/seo/seckill/additional/10023']").click() time.sleep(1) locator = (By.CSS_SELECTOR, ".sweet-alert.showSweetAlert.visible") Alert_ele = seckillInst.wait_element_visible(locator) if Alert_ele is not False: # 1.该商品存在尚未结束的抢购活动 # 2.当前城市没有出售该水票(商品)或者已下架 print(Alert_ele.text) locator = ".sa-confirm-button-container" browser.find_element_by_css_selector(locator).click() browser.refresh() else: # 3.正常追加抢购活动 priceInput = browser.find_element_by_id("scarePrice") priceInput.clear() priceInput.send_keys("0.01") browser.find_element_by_id("number").send_keys("1") browser.find_element_by_id("reservationtime").send_keys( "2018-11-01 00:00:00 - 2018-11-01 23:59:59") browser.find_element_by_css_selector( ".applyBtn.btn.btn-small.btn-sm.btn-success").click() browser.find_element_by_id("traceBut").click() seckillInst.close_SweetAlert()
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 search_bonusSendRecord(): #红包状态 Select(browser.find_element_by_id("status")).select_by_visible_text("未使用") #按红包编号搜索 Select(browser.find_element_by_id("type")).select_by_visible_text("红包编号") browser.find_element_by_id("key").send_keys("10058") #红包获取时间 #browser.find_element_by_id("starttime").click() #time.sleep(0.5) #browser.find_element_by_css_selector("body > div > div:nth-child(3) > table > tbody > tr:nth-child(2) > td.Wday").click() #time.sleep(0.3) #browser.find_element_by_id("dpOkInput").click() #browser.find_element_by_id("endtime").click() #time.sleep(0.5) #browser.find_element_by_css_selector("body > div > div:nth-child(3) > table > tbody > tr:nth-child(6) > td.Wtoday").click() #time.sleep(0.3) #browser.find_element_by_id("dpOkInput").click() #点击搜索 browser.find_element_by_css_selector(".fa.fa-search").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 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 add_watikiMeal(addType=1): """ 添加水票 :param addtype: 添加水票/套餐 ;1 = 套餐,2 = 水票 :return: """ addBtnList = [] if addType == 1: addBtnList = browser.find_elements_by_css_selector(".fa.fa-cubes") elif addType == 2: addBtnList = browser.find_elements_by_css_selector( ".btn.btn-default.btn-sm.J-add-ticket") else: print("error parameter !!!") addBtnList[0].click() set_Para(addTyte=addType, watikiType=2) # 点击确定提交 browser.find_element_by_id("waterticketBut").click() goodWatikiInst.close_SweetAlert()
def set_partner_default(): """ 邀请人默认值设置 :return: """ browser.find_element_by_link_text("邀请人管理").click() browser.find_element_by_css_selector( "button[data-url *= '/seo/partner/default']").click() locator = (By.ID, "day") dayInput = partnerInst.wait_element_visible(locator) if dayInput is not False: # 输入框原本有默认值,需要清空再输入 dayInput.clear() dayInput.send_keys("365") commisInput = browser.find_element_by_id("commission") commisInput.clear() commisInput.send_keys(20) else: pass browser.find_element_by_id("biguserBut").click() time.sleep(1) partnerInst.close_SweetAlert()
def order_reservation(): """ 转预约 :return: """ select_time(timeType="下单时间", dateType="最近30日") select_status(type="平台", status="等待派单") click_search() orderList = browser.find_elements_by_css_selector( "button[data-url $= 'reservation']") if len(orderList) > 0: orderList[0].click() locator = (By.CSS_SELECTOR, ".form-control.time") timeInput = orderOnlineInst.wait_element_visible(locator) if timeInput is not False: timeInput.send_keys("2018-11-10 17:50:00") browser.find_element_by_id("changBut").click() time.sleep(1) orderOnlineInst.close_SweetAlert() else: pass else: pass
def order_dispatch(): """ 派单 :return: """ select_time(timeType="下单时间", dateType="最近30日") select_status(type="平台", status="等待派单") click_search() orderList = browser.find_elements_by_css_selector( "button[data-url $= 'dispatch']") if len(orderList) > 0: orderList[0].click() locator = (By.CSS_SELECTOR, "input[name = 'staff']") # locator = (By.CSS_SELECTOR, ".form-control.staff") staffInput = orderOnlineInst.wait_element_visible(locator) if staffInput is not False: staffInput.send_keys("潘荣飞") browser.find_element_by_id("changBut").click() time.sleep(1) orderOnlineInst.close_SweetAlert() else: pass else: pass
def additional_bonus_activity(): """ 追加已经结束的活动 :return: """ filter_condition(status="已结束") additionBtn = browser.find_elements_by_css_selector( "button[data-url *= '/bonus_activity/additional']") if len(additionBtn) > 0: additionBtn[0].click() locator = (By.ID, "number") numInput = bonusActivityInst.wait_element_visible(locator) if numInput is not False: numInput.send_keys("3") browser.find_element_by_id("reservationtime").send_keys( "2018/11/02 00:00:00 - 2018/11/02 23:59:59") browser.find_element_by_css_selector( ".applyBtn.btn.btn-small.btn-sm.btn-success").click() browser.find_element_by_id("traceBut").click() bonusActivityInst.onclick_confirm() else: pass else: pass
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_partner(): """ 添加邀请人 :return: """ browser.find_element_by_link_text("邀请人管理").click() browser.find_element_by_css_selector( "button[data-url *= '/seo/partner/add']").click() locator = (By.CSS_SELECTOR, "input[placeholder = '手机号/ID']") phoneIDInput = partnerInst.wait_element_visible(locator) if phoneIDInput is not False: phoneIDInput.send_keys("19914863531") else: pass time.sleep(1) locator = (By.CSS_SELECTOR, "ul.select2-selection__rendered>li") partnerInst.wait_element_visible(locator, 2) partnerInstList = browser.find_elements_by_css_selector( "li[class ^= 'select2-results__option']") # 类名以value值开头 partnerInstList[0].click() browser.find_element_by_id("name").send_keys("桃子") browser.find_element_by_id("type4").click() Select(browser.find_element_by_id("city")).select_by_visible_text("南宁市") browser.find_element_by_id("day").send_keys("3") browser.find_element_by_id("percen").send_keys("50") browser.find_element_by_id("bonus").send_keys("10086") browser.find_element_by_id("partnerBut").click() time.sleep(3) partnerInst.close_SweetAlert()
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 order_change_deliveryman(staffNew="梁文杭"): """ 更换配送员 -- 与派单弹窗一样 :param staffName : 新的配送员名称 :return: """ select_time(timeType="下单时间", dateType="最近30日") select_status(type="平台", status="等待配送") click_search() orderList = browser.find_elements_by_css_selector( "button[data-url *= 'order/changdeliveryman']") if len(orderList) > 0: orderList[0].click() locator = (By.CSS_SELECTOR, "input[name = 'staff']") staffInput = orderOnlineInst.wait_element_visible(locator) if staffInput is not False: staffDiv = browser.find_element_by_css_selector( "div.modal-body > div > div > div:nth-child(3) " ) # > label > span:nth-child(1) staffCur = staffDiv.text if staffNew in staffCur: # 与当前配送员相同 print("与当前配送员相同,无需更换") browser.find_element_by_css_selector( "div.modal-content > div.modal-footer > button.btn.btn-default" ).click() else: staffInput.send_keys(staffNew) browser.find_element_by_css_selector("#changstaffForm").click() orderOnlineInst.print_curTime() # 1等待时间测试 staffExist = orderOnlineInst.wait_SweetAlert_visible() orderOnlineInst.print_curTime() # 2等待时间测试 if staffExist is False: # 配送员存在 browser.find_element_by_id("changBut").click() time.sleep(1) submitRes = orderOnlineInst.wait_SweetAlert_visible() print("submitRes:", submitRes.text) if "成功" in submitRes.text: # 正常更换 orderOnlineInst.close_SweetAlert() print("更换成功!新的配送员是:", staffNew) else: # 配送员不正确或配送员当前状态不能接单 orderOnlineInst.close_SweetAlert() time.sleep(1) browser.find_element_by_css_selector( "div.modal-content > div.modal-footer > button.btn.btn-default" ).click() print("配送员不是正常接单状态...") else: # 配送员不存在 print("staffExist:", staffExist.text) orderOnlineInst.close_SweetAlert() time.sleep(1) browser.find_element_by_css_selector( "div.modal-content > div.modal-footer > button.btn.btn-default" ).click() else: print("更换配送员-弹窗失败") else: print("更换配送员-查找按钮失败")
def create_bonus(quantity=None, expiresType=1, limitType=None, boolCreate=True): locator = (By.CSS_SELECTOR, "button[data-url$='seo/bonus/create']") WebDriverWait(browser, 3).until(EC.visibility_of_element_located(locator)) browser.find_element_by_css_selector( "button[data-url$='seo/bonus/create']").click() locator = (By.CSS_SELECTOR, "#myModalLabel") WebDriverWait(browser, 3).until(EC.visibility_of_element_located(locator)) if boolCreate: css_bonusName = "input[placeholder='红包名称']" css_discount = "input[name='discount']" css_quantuty = "input[name='quantity']" css_expiresType = "input[name='expiresType']" #3个选择 id_limitType = { "Type": "I_Type", "Amount": "I_Amount", "Category": "I_Category", "Items": "I_Items", "Area": "I_Area" } browser.find_element_by_css_selector(css_bonusName).send_keys("测试红包") browser.find_element_by_css_selector(css_discount).send_keys("18") if quantity is not None: browser.find_element_by_css_selector(css_quantuty).send_keys( "5") #设置红包个数 else: pass #设置有效期类型 expiresTypeList = browser.find_elements_by_css_selector( css_expiresType) if expiresType == 1: #当月有效 expiresTypeList[0].click() elif expiresType == 2: #红包领取之日起x天有效 expiresTypeList[1].click() else: expiresTypeList[2].click() #使用限制 多种组合,暂不实现 if limitType is not None: # 水票可用 #browser.find_element_by_id(id_limitType["Type"]).click() # 订单(水票)满 x 元可用 browser.find_element_by_id(id_limitType["Amount"]).click() browser.find_element_by_css_selector( "input[name = 'amount']").send_keys("5") #指定商品类目为,如果红包指定水票可用,则该限制不可 #document.querySelectorAll('#I_Type')使用js在控制台可以看到这个属性值,但是还不知道如何获取 typeChecked = browser.find_element_by_id(id_limitType["Type"]) if False: print("红包指定水票可用,则该限制不可用") pass else: browser.find_element_by_id(id_limitType["Category"]).click() Select(browser.find_element_by_css_selector( "#mainCategory")).select_by_visible_text("其他商品") #指定商品(水票) browser.find_element_by_id(id_limitType["Items"]).click() browser.find_element_by_css_selector( "input[name = 'goodsIds']").send_keys("6566") #勾选指定地区 browser.find_element_by_id(id_limitType["Area"]).click() Select(browser.find_element_by_css_selector( "#city")).select_by_visible_text("柳州市") time.sleep(1) browser.find_element_by_css_selector("#bonusFormBut").click() click_confirm_window() else: pass else: css = "div.modal-footer > button.btn.btn-default" browser.find_element_by_css_selector(css).click()
def add_groupBuy(self): # 点击添加团购 add_btn = ".btn.btn-default.btn-sm.modal-btn" browser.find_element_by_css_selector(add_btn).click() # 勾选桶装水,默认选中水票 locator = (By.CSS_SELECTOR, "#activitytype1") ele = WebDriverWait(browser, 4).until(EC.visibility_of_element_located(locator)) if ele is not False: print(ele) ele.click() else: pass # 定位当前页面所有的输入框 input_ele = "input.select2-search__field" inputList = browser.find_elements_by_css_selector(input_ele) # 绑定商品 inputList[0].send_keys("巴马") time.sleep(1) # 等待显示搜索结果 locator = (By.CSS_SELECTOR, "ul.select2-selection__rendered>li") WebDriverWait(browser, 4).until(EC.visibility_of_any_elements_located(locator)) goodsList = browser.find_elements_by_css_selector( "li[class^='select2-results__option']") # 类名以value值开头 resultText = goodsList[0].text if resultText == "未找到结果": pass else: goodsList[0].click() browser.find_element_by_id("scarePrice").send_keys("0.01") browser.find_element_by_id("scareNum").send_keys("5") # 获取当前时间 import datetime curTiem = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') delayTime = datetime.datetime.now() + datetime.timedelta(minutes=5) delayTimeF = delayTime.strftime('%Y-%m-%d %H:%M:%S') print("curTiem", curTiem) print("delayTimeF", delayTimeF) browser.find_element_by_id("endtime").send_keys(delayTimeF) browser.find_element_by_css_selector("input[id = 'name']").send_keys( "团购-桶装水小程序支付") # 发团人 inputList[1].send_keys("15220089922") time.sleep(1) # 等待显示搜索结果 locator = (By.CSS_SELECTOR, "ul.select2-selection__rendered>li") WebDriverWait(browser, 4).until(EC.visibility_of_any_elements_located(locator)) sponsorList = browser.find_elements_by_css_selector( "li[class^='select2-results__option']") # 类名以value值开头 resultText = sponsorList[0].text if resultText == "未找到结果": pass else: sponsorList[0].click() browser.find_element_by_css_selector(".btn.btn-primary").click() # 执行成功,需要关闭OK对话框 self.click_confirm_window()
def order_add(): """ 生成线下订单 :return: """ browser.find_element_by_css_selector( "button[data-url $= '/order/add']").click() try: locator = (By.NAME, "phone") nameInput = orderOfflineInst.wait_element_visible(locator, 5) nameInput.send_keys("13878857334") browser.find_element_by_css_selector( "#phoneform > div:nth-child(2) > ul").click() time.sleep(1) browser.find_element_by_id("phoneFormBut").click() except Exception as errMsg: print(errMsg) try: browser.find_element_by_css_selector( "div.addresslist.more > div:nth-child(2)").click() payType = browser.find_elements_by_css_selector( "input[name = 'paytype']") payType[1].click() browser.find_element_by_css_selector(".col-md-12.J-addgood").click() except Exception as errMsg: print(errMsg) # 添加商品 try: addBtn = browser.find_elements_by_css_selector(".changnum.increase") if len(addBtn) > 0: addBtn[1].click() browser.find_element_by_id("addgoodsBut").click() # 选择送达时间 Select(browser.find_element_by_id( "J_deliveryDay")).select_by_visible_text("11月09日 今天") Select(browser.find_element_by_id( "J_deliveryHour")).select_by_visible_text("尽快送达") browser.find_element_by_id("noteorder").send_keys("订单要尽快送达哦") browser.find_element_by_id("noteoperation").send_keys("自动化下单的") browser.find_element_by_id("orderFormBut").click() orderOfflineInst.close_SweetAlert() else: print("该收货地址没有商品") except Exception as errMsg: print(errMsg)