def modify_seller_memo(keyword, modify_info): """ key_word:关键字,比如order_code modify_info = {"旗帜": "红旗", "备注": "111", "追加": True, "常用备注": "常用备注1", "维护常用卖家备注": "常用备注1,常用备注2,常用备注3"} """ flag_mapping = { "无旗帜": "i[1]", "红旗": "i[2]", "黄旗": "i[3]", "绿旗": "i[4]", "蓝旗": "i[5]", "紫旗": "i[6]", } with base.wait_refresh(base.get_cell_xpath(keyword, "卖家备注")) as e: base.wait_element_click(base.find_xpath("修改&标记")) base.wait_element(base.find_xpath("修改&标记", "修改备注")) time.sleep(1) base.wait_element_click(base.find_xpath("修改&标记", "修改备注")) for k, v in modify_info.items(): if k == "旗帜": base.wait_element( base.find_xpath_by_tag_name("不修改", flag_mapping[v])) time.sleep(1) base.wait_element_click( base.find_xpath_by_tag_name("不修改", flag_mapping[v])) elif k == "备注": base.wait_element( base.find_xpath_by_tag_name( "修改备注", "textarea")).send_keys(Keys.CONTROL + 'a') base.wait_element( base.find_xpath_by_tag_name("修改备注", "textarea")).send_keys(v) elif k == "追加": element = base.wait_element( base.find_xpath_by_inner_tag_name("是否追加备注", "input")) is_select = element.is_selected() if is_select != v: base.wait_element_click( base.find_xpath_by_inner_tag_name("是否追加备注", "input")) elif k == "常用备注": base.wait_element(base.find_xpath("常用卖家备注", v)) time.sleep(1) base.wait_element_click(base.find_xpath("常用卖家备注", v)) elif k == "维护常用卖家备注": base.wait_element_click(base.find_xpath("维护常用卖家备注")) base.wait_element( base.find_xpath_by_placeholder( "请输入常用卖家备注(逗号分隔)")).send_keys(Keys.CONTROL + 'a') base.wait_element( base.find_xpath_by_placeholder( "请输入常用卖家备注(逗号分隔)")).send_keys(v) base.wait_element_click(base.find_xpath("维护常用卖家备注", "确认")) base.wait_element_click(base.find_xpath("修改备注", "保存"))
def modify_note(keyword, modify_info): """ key_word:关键字,比如order_code modify_info = {"便签": "111", "追加": True, "系统便签":"爆款订单", "常用便签": "常用便签1", "维护常用便签": "常用便签1:红旗,常用便签2:黄,常用便签3:蓝"} """ with base.wait_refresh(base.get_cell_xpath(keyword, "便签")) as e: base.wait_element_click(base.find_xpath("修改&标记")) base.wait_element_click(base.find_xpath("修改&标记", "修改便签")) base.change_frame("全部订单框架", "修改订单便签") for k, v in modify_info.items(): if k == "便签": base.wait_element( base.find_xpath_by_tag_name( "选择的", "textarea", True)).send_keys(Keys.CONTROL + 'a') base.wait_element( base.find_xpath_by_tag_name("选择的", "textarea", True)).send_keys(v) elif k == "追加": element = base.wait_element( base.find_xpath_by_inner_tag_name("追加便签", "input")) is_select = element.is_selected() print(f"输入的值是{v}") print(f"元素是否被选中{is_select}") print(f"是否相等{is_select == v}") if is_select != v: base.wait_element_click( base.find_xpath_by_inner_tag_name("追加便签", "input")) elif k == "系统便签": base.wait_element(base.find_xpath("系统标签", v)) time.sleep(1) base.wait_element_click(base.find_xpath("系统标签", v)) elif k == "常用便签": base.wait_element(base.find_xpath("常用标签", v)) time.sleep(1) base.wait_element_click(base.find_xpath("常用标签", v)) elif k == "维护常用便签": base.wait_element_click(base.find_xpath("维护常用便签")) base.wait_element( base.find_xpath_by_placeholder("请输入常用便签(逗号分隔)")).send_keys( Keys.CONTROL + 'a') base.wait_element( base.find_xpath_by_placeholder("请输入常用便签(逗号分隔)")).send_keys( v) base.wait_element_click(base.find_xpath("维护常用便签", "确认")) base.change_frame("全部订单框架") base.wait_element_click(base.find_xpath("修改订单便签", "保存"))
def check_data(bin_inventory, marketability_inventory, inventory, balance, temporary_inventory, purchase_price, cost_price, purchase_num, sales_num, occupy_num): result = base.get_column_text("库位库存") for i in result: assert i == str(int(bin_inventory)), f"库位库存应该是{str(int(bin_inventory))},但实际是{i}" result = base.get_column_text("可销库存数") for i in result: assert i == str(int(marketability_inventory)), f"可销售库存数应该是{str(int(marketability_inventory))},但实际是{i}" result = base.get_column_text("库存预警值", "库存数") for i in result: assert i == str(int(inventory)), f"库存数应该是{str(int(inventory))},但实际是{i}" result = base.get_column_text("余额") for i in result: assert i == format(balance, '.2f'), f"余额应该是{format(balance, '.2f')},但实际是{i}" result = base.get_column_text("暂存位库存") for i in result: assert i == str(int(temporary_inventory)), f"暂存位库存应该是{str(int(temporary_inventory))},但实际是{i}" result = base.get_column_text("最新进价") for i in result: assert i == format(purchase_price, '.2f'), f"最新进价应该是{format(purchase_price, '.2f')},但实际是{i}" result = base.get_column_text("成本价") for i in result: assert i == format(cost_price, '.2f'), f"成本价应该是{format(cost_price, '.2f')},但实际是{i}" result = base.get_column_text("采购在途数") for i in result: assert i == str(int(purchase_num)), f"采购在途数应该是{str(int(purchase_num))},但实际是{i}" base.wait_element_click(base.find_xpath("刷新报表")) base.wait_element(base.find_xpath("刷新报表缓存", "确定")) time.sleep(1) base.wait_element_click(base.find_xpath("刷新报表缓存", "确定")) base.wait_element(base.find_xpath_by_tag_name("任务托管列表", "a")) time.sleep(1) base.wait_element_click(base.find_xpath_by_tag_name("任务托管列表", "a")) time.sleep(3) base.wait_table_refresh(base.find_xpath("组合查询"), 1, "三十天销量") result = base.get_column_text("三十天销量") for i in result: assert i == str(int(sales_num)), f"三十天销量应该是{str(int(sales_num))},但实际是{i}" result = base.get_column_text("七天销量") for i in result: assert i == str(int(sales_num)), f"七天销量应该是{str(int(sales_num))},但实际是{i}" result = base.get_column_text("占用数") for i in result: assert i == str(int(occupy_num)), f"占用数应该是{str(int(occupy_num))},但实际是{i}"
def test_new_order(): base.wait_element(base.find_xpath("新增订单")) time.sleep(1) base.wait_element_click(base.find_xpath("新增订单")) base.wait_element_click(base.find_xpath_with_spaces("手工新增订单")) base.change_frame("全部订单框架", "创建新订单") base.wait_element_click(base.find_xpath("阿里测试店铺01")) base.wait_element_click(base.find_xpath("选择买家", "选择买家")) base.change_frame("全部订单框架", "选择买家") print(f"该页面单击直接勾选") base.wait_element(base.find_xpath("加载", "渲染")) base.wait_element_click(base.get_cell_xpath(1, "所属平台")) base.change_frame("全部订单框架") base.wait_element_click(base.find_xpath("选择买家", "确认选择的买家")) base.change_frame("全部订单框架", "创建新订单") base.wait_element(base.find_xpath_by_tag_name("买家留言", "input")).send_keys("买家留言") base.wait_element(base.find_xpath_by_tag_name("卖家备注", "input")).send_keys("卖家备注") base.change_frame("全部订单框架") base.wait_element_click(base.find_xpath("确认并创建新的订单")) base.wait_element(base.find_xpath("增加新的商品")) order_code = base.wait_element(base.get_cell_xpath(1, "订单编码")).text base.wait_element_click(base.find_xpath("增加新的商品")) base.change_frame("全部订单框架", "选择商品") base.chose_product_by_text("测试商品1-红色 XS,测试商品1-红色 S") base.change_frame("全部订单框架") base.wait_element_click(base.find_xpath("选择商品", "确定")) base.wait_element(base.get_cell_xpath(1, "订单编码")) time.sleep(2) base.wait_element_click(base.get_cell_xpath(1, "订单编码")) base.wait_element_click(base.get_cell_xpath(1, "订单编码", "详")) base.change_frame("全部订单框架", "订单详情") base.wait_element_click(base.find_xpath("快速支付")) base.wait_element(base.find_xpath("确认快速添加支付明细吗?")) time.sleep(1) base.wait_element_click(base.find_xpath("确认快速添加支付明细吗?", "确定")) base.wait_element(base.find_xpath("支付账号", "支付日期")) base.change_frame("全部订单框架") base.wait_element_click(base.find_xpath_by_tag_name("订单详情", "a")) order_status = base.wait_element(base.get_cell_xpath(1, "订单状态")).text assert order_status == '待审核'
def modify_warehouse_and_express(keyword, modify_info): """ keyword:关键字,比如 order_code modify_info: {"仓库": "主仓库", "快递": "EMS",} """ with base.wait_refresh(base.get_cell_xpath(keyword, "仓库")) as e: base.wait_element_click(base.find_xpath("修改&标记")) base.wait_element_click(base.find_xpath("修改&标记", "修改仓库、快递")) base.change_frame("全部订单框架", "修改仓库和快递") for k, v in modify_info.items(): base.wait_element_click(base.find_xpath_by_tag_name(k, "input")) base.wait_element_click(base.find_xpath(v)) base.change_frame("全部订单框架") base.wait_element_click(base.find_xpath("修改仓库和快递", "确认"))
def turn_to_exception(exception_type, exception_description='', normal_exceptions='常用异常1,常用异常2,常用异常3'): """ exception_type:异常类型 目前仅支持常用异常,黑名单,终结,标记异常 exception_description:异常描述,当使用常用异常时,用于指定是哪个常用异常 normal_exceptions:用于直接覆盖常用异常枚举 """ base.wait_element_click(base.find_xpath("转异常")) base.change_frame("全部订单框架", "请输入标记异常的类型,输入相关说明") if exception_type == '常用异常': base.wait_element_click(base.find_xpath("维护常用异常")) base.change_frame("全部订单框架") base.wait_element(base.find_xpath_by_placeholder( "请输入常用异常(逗号分隔)")).send_keys(Keys.CONTROL + 'a') base.wait_element(base.find_xpath_by_placeholder( "请输入常用异常(逗号分隔)")).send_keys(normal_exceptions) base.wait_element_click(base.find_xpath("维护常用异常", "确认")) base.change_frame("全部订单框架", "请输入标记异常的类型,输入相关说明") time.sleep(1) base.wait_element_click(base.find_xpath("常用异常", exception_description)) elif exception_type in ["黑名单", "终结", "标记异常"]: base.wait_element_click(base.find_xpath(exception_type)) if exception_description != '': base.wait_element(base.find_xpath_by_tag_name( "异常描述:", "input")).send_keys(Keys.CONTROL + 'a') base.wait_element(base.find_xpath_by_tag_name( "异常描述:", "input")).send_keys(exception_description) else: assert 1 == 2, "请核实异常类型是否正确,目前仅支持常用异常,黑名单,终结,标记异常" base.change_frame("全部订单框架") base.wait_element_click(base.find_xpath("请输入标记异常的类型,输入相关说明", "确认")) if exception_type == '终结': base.wait_element(base.find_xpath("是否终结", "确定")) time.sleep(1) base.wait_element_click(base.find_xpath("是否终结", "确定"))
def test_multi_approve_button(): base.wait_element(base.find_xpath("订单状态", "待审核(无备注)")) time.sleep(1) base.wait_element_click(base.find_xpath("订单状态", "待审核(无备注)")) base.wait_table_refresh(base.find_xpath("组合查询"), 1, "订单编码") order_code = base.wait_element(base.get_cell_xpath(1, "订单编码")).text base.wait_element(base.find_xpath_by_placeholder("模糊搜索")).send_keys(order_code) base.wait_element_click(base.find_xpath("批量审核")) base.wait_element(base.find_xpath("提示", "根据当前查询条件共查询出")) time.sleep(1) base.wait_element_click(base.find_xpath("根据当前查询条件共查询出", "确定")) base.change_frame("全部订单框架", "任务托管列表") base.wait_text_locate(base.get_cell_xpath(1, "进度条"), '100%') base.change_frame("全部订单框架") base.wait_element_click(base.find_xpath_by_tag_name("任务托管列表", "a"))
def test_detail_button(): """ 能显示字段即可,不管功能 """ sku_code = "测试商品1-红色 XS" base.scroll_to(4) time.sleep(1) base.wait_element( base.find_xpath_by_placeholder("商家编码")).send_keys(Keys.CONTROL + 'a') base.wait_element( base.find_xpath_by_placeholder("商家编码")).send_keys(sku_code) base.wait_table_refresh(base.find_xpath("组合查询"), 1, "余额") base.wait_element_click(base.get_cell_xpath(1, ["库存预警值", "库存数"])) base.wait_element_click(base.get_cell_xpath(1, ["库存预警值", "库存数"], "详")) base.change_frame("库存查询框架", "出入库记录页面") base.wait_element(base.find_xpath("调整金额")) base.change_frame("库存查询框架") time.sleep(1) base.wait_element_click(base.find_xpath_by_tag_name("出入库记录页面", "a")) base.wait_element_click(base.get_cell_xpath(1, ["余额", "占用数"])) base.wait_element_click(base.get_cell_xpath(1, ["余额", "占用数"], "详")) base.change_frame("库存查询框架", "占用记录页面") base.wait_element(base.find_xpath("订单单号")) base.change_frame("库存查询框架") base.wait_element(base.find_xpath_by_tag_name("占用记录页面", "a")) time.sleep(1) base.wait_element_click(base.find_xpath_by_tag_name("占用记录页面", "a")) time.sleep(1) base.wait_element_click(base.get_cell_xpath(1, "采购在途数")) base.wait_element_click(base.get_cell_xpath(1, "采购在途数", "详")) base.change_frame("库存查询框架", "在途采购单明细页面") base.wait_element(base.find_xpath("采购单编码")) base.change_frame("库存查询框架") base.wait_element(base.find_xpath_by_tag_name("在途采购单明细页面", "a")) time.sleep(1) base.wait_element_click(base.find_xpath_by_tag_name("在途采购单明细页面", "a")) base.wait_element_click(base.get_cell_xpath(1, "操作", "销售链接")) base.change_frame("库存查询框架", "销售链接明细") base.wait_element(base.find_xpath("店铺")) base.change_frame("库存查询框架") base.wait_element(base.find_xpath_by_tag_name("销售链接明细", "a")) time.sleep(1) base.wait_element_click(base.find_xpath_by_tag_name("销售链接明细", "a")) base.wait_element_click(base.get_cell_xpath(1, "操作", "销售订单")) base.change_frame("库存查询框架", "销售订单明细") base.wait_element(base.find_xpath("平台单号"))
def modify_address(keyword, modify_info): """ key_word:关键字,比如order_code modify_info = {"收货地址": "江苏省南京市鼓楼区鼓楼大道1185号", "收货人名": "aaaaa", "联系电话":"BBBBBB", "联系手机": "13772839830", "邮政编码": "211458","核对备注","11111111111111","选择地址": "会员名,手机号,地址"} """ base.scroll_to(4) with base.wait_refresh(base.get_cell_xpath(keyword, "地址")) as e: base.wait_element_click(base.find_xpath("修改&标记")) base.wait_element_click(base.find_xpath("修改&标记", "修改地址")) base.change_frame("修改地址") for k, v in modify_info.items(): if k == "收货地址": base.wait_element( base.find_xpath_by_tag_name( "收货地址", "input[7]")).send_keys(Keys.CONTROL + 'a') base.wait_element( base.find_xpath_by_tag_name("收货地址", "input[7]")).send_keys(v) base.wait_element( base.find_xpath_by_tag_name("收货地址", "input[7]")).send_keys( Keys.ENTER) time.sleep(1) elif k == "收货人名": base.wait_element(base.find_xpath_by_tag_name( "收货人名", "input")).send_keys(Keys.CONTROL + 'a') base.wait_element(base.find_xpath_by_tag_name( "收货人名", "input")).send_keys(v) elif k == "联系电话": base.wait_element(base.find_xpath_by_tag_name( "联系电话", "input")).send_keys(Keys.CONTROL + 'a') base.wait_element(base.find_xpath_by_tag_name( "联系电话", "input")).send_keys(v) elif k == "联系手机": base.wait_element(base.find_xpath_by_tag_name( "联系手机", "input")).send_keys(Keys.CONTROL + 'a') base.wait_element(base.find_xpath_by_tag_name( "联系手机", "input")).send_keys(v) elif k == "邮政编码": base.wait_element(base.find_xpath_by_tag_name( "邮政编码", "input")).send_keys(Keys.CONTROL + 'a') base.wait_element(base.find_xpath_by_tag_name( "邮政编码", "input")).send_keys(v) elif k == "选择地址": base.wait_element(base.find_xpath("地址", v)) time.sleep(1) base.wait_element_click(base.find_xpath("地址", v)) elif k == "核对备注": seller_memo = base.wait_element( base.find_xpath_by_tag_name( "卖家备注", "textarea")).get_attribute("value") print(f"{seller_memo}") assert seller_memo == v base.change_frame() base.wait_element_click(base.find_xpath("修改地址", "确定")) base.change_frame("全部订单框架")