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 get_dataTables_info(): dataTables = browser.find_element_by_css_selector(".dataTables_info") text_dataTables = dataTables.text print(text_dataTables) # 正则表达式提取数字 import re findResult = re.findall(r'\d+', text_dataTables) print(findResult) goodsNum = int(findResult[1]) # 共多少条记录 pageBtnList = browser.find_elements_by_css_selector("li[class^='paginate_button']") # 共多少页 pageBtnNum = len(pageBtnList) print("翻页按钮数为:", pageBtnNum) if goodsNum % 10 == 0: pageNum = goodsNum // 10 else: pageNum = goodsNum // 10 + 1 if goodsNum <= 10: if pageNum == pageBtnNum: # 只有1页时相等 print("only onepage right") else: print("page error") else: if pageNum == pageBtnNum - 1: # 大于1页时,页数+下一页 print("page right") else: print("page error")
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 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 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)
def delete_comment(): deleteList = browser.find_elements_by_css_selector( "button[data-action='删除评价']") if len(deleteList) > 0: deleteList[0].click() else: print("没有评论可删除") #您确认要删除评价? sweet_alter_visble()
def see_settle_detailed(): serverList = browser.find_elements_by_css_selector(".fa.fa-server") if len(serverList) > 0: serverList[0].click() time.sleep(2) orderWatikiInst.close_modal_content() # orderWatikiInst.close_SweetAlert() else: pass
def operation_record(): recordList = browser.find_elements_by_css_selector(".fa.fa-list-ol") if len(recordList) > 0: recordList[0].click() locator = (By.ID,"myModalLabel") WebDriverWait(browser,3).until(EC.visibility_of_element_located(locator)) browser.find_element_by_css_selector(".close").click() else: print("无操作记录可查看")
def recover_comment(): recoverList = browser.find_elements_by_css_selector( "button[data-action='显示评价']") if len(recoverList) > 0: recoverList[0].click() else: print("没有评论可恢复") # #您确认要恢复评价? sweet_alter_visble()
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 oplog_bonus_activity(): """ 活动记录 :return: """ oplogBtn = browser.find_elements_by_css_selector( "button[data-url *= '/bonus_activity/oplog']") if len(oplogBtn) > 0: oplogBtn[0].click() bonusActivityInst.close_modal_content() else: pass
def stop_point_goods(): goodsList = browser.find_elements_by_css_selector( "button[data-url *= '/users/delivery_point/detail_goods/stop']") if len(goodsList) > 0: goodsList[0].click() time.sleep(1) browser.find_element_by_css_selector( ".sa-confirm-button-container").click() time.sleep(1) deliveryPointInst.close_SweetAlert() else: pass
def see_logs(): try: time.sleep(1) logList = browser.find_elements_by_css_selector(".fa.fa-history") if len(logList) > 0: logList[0].click() else: print("没有发布商品") except Exception as err_msg: print(err_msg) # 关闭日志窗口 close_suspension_window()
def settlement_info(): try: settlementList = browser.find_elements_by_css_selector( "button[data-action='查看结算信息']") if len(settlementList) > 0: settlementList[0].click() else: print("当前城市暂无商品出售") except Exception as err_msg: print(err_msg) #查看后要手动关闭悬浮窗 close_suspension_window()
def delete_deliveryPoint(): """ 删除配送点 :return: """ modifyBtn = browser.find_elements_by_css_selector( "button[data-url *= '/users/delivery_point/del/10694']") if len(modifyBtn) > 0: modifyBtn[0].click() time.sleep(1) browser.find_element_by_css_selector(".cancel").click() else: pass
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 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 put_off_shelves(): putOffList = browser.find_elements_by_css_selector("button[data-action='下架']") print(len(putOffList)) if len(putOffList) > 0: putOffList[0].click() locator = (By.CSS_SELECTOR,".sa-confirm-button-container") ele = orderWatikiInst.wait_element_visible(locator,2) print("确定要下架商品吗?") ele.click() print("下架成功") else: print("暂无数据")
def edit_cityGoods(): #找到编辑按钮 editList = browser.find_elements_by_css_selector("button[data-action='编辑']") #查找多个 if len(editList) > 0: editList[0].click() else: print("当前城市暂无商品出售") # 等待编辑弹窗出现 locator = (By.CSS_SELECTOR, "#myModalLabel") WebDriverWait(browser, 3).until(EC.visibility_of_element_located(locator)) browser.find_element_by_css_selector("#goodsFormBut").click() # 编辑成功,点击OK close_ok_window()
def finish_bonus_activity(): """ 结束正在进行中的活动 :return: """ filter_condition(status="进行中") finishBtn = browser.find_elements_by_css_selector( "button[data-url *= '/bonus_activity/finish']") if len(finishBtn) > 0: finishBtn[0].click() bonusActivityInst.onclick_confirm() time.sleep(0.5) bonusActivityInst.close_SweetAlert() else: print("没有进行中状态的活动")
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 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 disable_bonus(boolCanle = True): cancleBobusList = browser.find_elements_by_css_selector("button[data-action='红包作废']") if len(cancleBobusList) > 0: cancleBobusList[0].click() wait_Popup_window() if boolCanle: browser.find_element_by_css_selector("input[placeholder='原因']").send_keys("测试看看作废状态是否发生变化") #点击确认 click_confirm_window() #点击OK wait_Popup_window() click_confirm_window() else: click_cancle_window() else: print("没有可以作废的红包")
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 activate_bonus(isActivate=True): try: time.sleep(0.5) shieldList = browser.find_elements_by_css_selector( "button[data-action='激活']") if len(shieldList) > 0: shieldList[0].click() if isActivate: #是的,激活! click_confirm_window() #OK click_confirm_window() else: click_cancle_window() else: print("没有可激活的红包") except Exception as err_msg: print("激活失败:", err_msg)
def shield_bonus(isShield=True): try: time.sleep(0.5) shieldList = browser.find_elements_by_css_selector( "button[data-action='屏蔽']") if len(shieldList) > 0: shieldList[0].click() if isShield: # 是的,屏蔽! click_confirm_window() # OK click_confirm_window() else: click_cancle_window() else: print("没有可屏蔽的红包") except Exception as err_msg: print("屏蔽失败:", err_msg)
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 put_off_shelves(): # 找到下架按钮 try: time.sleep(1) offList = browser.find_elements_by_css_selector( "button[data-action='下架']") if len(offList) > 0: offList[0].click() else: print("当前城市暂无商品出售") except Exception as err_msg: print(err_msg) # 等待{你确认要下架} wait_popup_window() browser.find_element_by_css_selector( ".sa-confirm-button-container").click() # 操作成功,点击OK close_ok_window()
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() # 参加新用户优惠