python WebDriverWait多个条件(OR逻辑求值)

fgw7neuy  于 5个月前  发布在  Python
关注(0)|答案(2)|浏览(61)

使用python,方法WebDriverWait用于等待网页上出现1个元素。如何在没有多次try/except的情况下使用此方法?是否有一个OR选项用于使用此方法的多个情况?https://selenium-python.readthedocs.io/waits.html

rdlzhqv9

rdlzhqv91#

如果不使用多个try/except{}通过OR选项为两个元素引入 WebDriverWait,您可以使用以下解决方案之一:

  • 使用CSS_SELECTOR
element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".element_A_class, .element_B_class"))

字符串

element = WebDriverWait(driver,20).until(lambda driver: driver.find_element(By.XPATH,"element_A_xpath") or driver.find_element(By.XPATH,"element_B_xpath"))

参考文档

您可以在以下内容中找到一些相关讨论:

  • selenium二合一xpath测试
  • Python / Selenium:WebDriverWait中的逻辑运算符预期条件
jgovgodb

jgovgodb2#

从selenium python v4.0.0开始,您可以使用EC.any_of来查找多个条件或一起查找:

# wait for either class1 or class2
WebDriverWait(driver, 30).until(
    EC.any_of(
        EC.presence_of_element_located((By.CLASS_NAME, "class1")),
        EC.presence_of_element_located((By.CLASS_NAME, "class2"))
    )
)

字符串

相关问题