我有我需要的物品之一的等待代码:
WebDriverWait(driver, 5).until(lambda driver: driver.find_elements(
By.XPATH, 'XPATH') or driver.find_elements(
By.XPATH, 'XPATH') or driver.find_elements(
By.XPATH, 'XPATH'))
我可以以某种方式找出我等待的元素吗? 我知道我可以像这样检查这些元素的存在:
if driver.find_elements(By.XPATH, 'XPATH') > 0:
True
elif driver.find_elements(By.XPATH, 'XPATH') > 0:
True
但是它并不像我想要的那样美丽。我对直到函数中进行标识的可能性感兴趣。 如果您还有其他想法,我很想听听他们的想法。
答案 0 :(得分:1)
在Python中,and
运算符以特殊方式工作。
试试这个:
WebDriverWait(driver, 5).until(lambda driver: (driver.find_elements(
By.XPATH, 'XPATH1') and 1) or (driver.find_elements(
By.XPATH, 'XPATH2') and 2) or (driver.find_elements(
By.XPATH, 'XPATH3') and 3))
这将根据找到的XPATH返回1、2或3。您也可以用任何字符串/表达式替换这些数字。唯一的条件是它应该是可以在python中传递if (expression)
的表达式。