实现思路
通过打开指定网页,获取网页对象后,先对页码进行获取,然后通过for循环每一页的每一条数据
匹配规则:商品不为篮球鞋时,就点击确认发货
import xbot
import xbot_visual
from . import package
from .package import variables as glv
import time
def main(args):
try:
for _xbot_retry_time in range(4):
try:
web_page = xbot_visual.web.get(web_type="chrome", mode="activated", value="", use_wildcard=False, silent_running=False, wait_load_completed=True, load_timeout="20", stop_load_if_load_timeout="handleExcept", open_page=False, url=None, _block=("多页订单自动发货", 1, "获取已打开的网页对象"))
break
except Exception as e:
if _xbot_retry_time == 3:
raise e
else:
xbot_visual.programing.log(type='info',text=e,_block=("多页订单自动发货", 1,"获取已打开的网页对象"))
time.sleep(3)
页码_element_list = xbot_visual.web.element.get_all_elements(browser=web_page, select_type="selector", selector=package.selector("页码相似元素"), css_selector="", xpath_selector="", is_related_parent=False, parent=None, operation="text", absolute_url=False, attribute_name=None, timeout="20", output_with_element_count=False, _block=("多页订单自动发货", 2, "获取相似元素列表(web)"))
页码set = 页码_element_list[-2]
for loop_index in xbot_visual.workflow.range_iterator(start="1", stop=页码set, step="1", _block=("多页订单自动发货", 4, "For次数循环")):
#region 自动发货
for 每次循环出来的的订单 in xbot_visual.web.element.iter_all_elements(browser=web_page, selector=package.selector("订单_相似元素组"), operation="element", absolute_url=False, attribute_name=None, timeout="20", loop_start_index="0", loop_end_index="-1", output_with_index=False, _block=("多页订单自动发货", 6, "循环相似元素(web)")):
订单内容text = xbot_visual.web.element.get_details(browser=web_page, element=每次循环出来的的订单, operation="text", absolute_url=False, attribute_name=None, relative_to="screen", to96dpi=True, timeout="20", _block=("多页订单自动发货", 7, "获取元素信息(web)"))
if xbot_visual.workflow.multiconditional_judgment(relation="and", conditionals=[{"operand1": 订单内容text,"operand2": "完成","operator": "in"},{"operand1": 订单内容text,"operand2": "篮球鞋","operator": "not in"}], _block=("多页订单自动发货", 8, "IF 多条件")):
确认发货_element = xbot_visual.web.element.get_element(browser=web_page, select_type="selector", selector=package.selector("确认发货-317"), css_selector="", xpath_selector="", is_related_parent=True, parent=每次循环出来的的订单, timeout="20", _block=("多页订单自动发货", 9, "获取元素对象(web)"))
xbot_visual.web.element.click(browser=web_page, element=确认发货_element, simulate=True, move_mouse=False, clicks="click", button="left", keys="null", delay_after="1", anchor_type="center", sudoku_part="MiddleCenter", offset_x="0", offset_y="0", timeout="20", _block=("多页订单自动发货", 10, "点击元素(web)"))
xbot_visual.web.element.click(browser=web_page, element=package.selector("确 定"), simulate=True, move_mouse=False, clicks="click", button="left", keys="null", delay_after="1", anchor_type="center", sudoku_part="MiddleCenter", offset_x="0", offset_y="0", timeout="20", _block=("多页订单自动发货", 11, "点击元素(web)"))
#endif
#endloop
#endregion
if xbot_visual.workflow.test(operand1=loop_index, operator="!=", operand2=页码set, operator_options="{}", _block=("多页订单自动发货", 15, "IF 条件")):
xbot_visual.web.element.click(browser=web_page, element=package.selector("下页按钮"), simulate=True, move_mouse=False, clicks="click", button="left", keys="null", delay_after="1", anchor_type="center", sudoku_part="MiddleCenter", offset_x="0", offset_y="0", timeout="20", _block=("多页订单自动发货", 16, "点击元素(web)"))
#endif
#endloop
finally:
pass