

新版本更新后,等待元素指令如果匹配到多个元素就会抛出异常,我这里建议大家还是遵循现有的设计。当然啦,大家如果实在想要等待多个元素的功能,那我还是会尽可能的满足大家。
我们先写一个装饰器:
def wait_elements(func):
def wrapper(*args, **kwargs):
state = kwargs["state"]
try:
res = func(*args, **kwargs)
return res
except Exception as exception:
exception = xbot_visual.trace(exception)
if "匹配到多个元素, 无法唯一定位" in exception:
return state == "appear"
raise exception
return wrapper
xbot_visual.web.element.wait = wait_elements(xbot_visual.web.element.wait)
然后在主流程第一行指令使用插入代码段,将上述代码粘贴进去

这样我们就实现了等待多个元素的功能,并且是全局生效
为了方便使用也可以封装成自定义指令,一样的放在第一行就行了