如何找出成功的WebDriverWait?

时间:2019-07-04 10:10:38

标签: python-3.x selenium selenium-webdriver

我有我需要的物品之一的等待代码:

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

但是它并不像我想要的那样美丽。我对直到函数中进行标识的可能性感兴趣。 如果您还有其他想法,我很想听听他们的想法。

1 个答案:

答案 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)的表达式。