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

fgw7neuy  于 2024-01-05  发布在  Python
关注(0)|答案(2)|浏览(128)

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

rdlzhqv9

rdlzhqv91#

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

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

字符串

  1. 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来查找多个条件或一起查找:

  1. # wait for either class1 or class2
  2. WebDriverWait(driver, 30).until(
  3. EC.any_of(
  4. EC.presence_of_element_located((By.CLASS_NAME, "class1")),
  5. EC.presence_of_element_located((By.CLASS_NAME, "class2"))
  6. )
  7. )

字符串

相关问题