【问题标题】:WebDriverWait for multiple conditions (OR logical evaluation)WebDriverWait 多个条件(或逻辑评估)
【发布时间】:2020-06-15 04:24:08
【问题描述】:

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

【问题讨论】:

  • 您可以在 XPATH 定位器中使用 OR。 ExpectedCondition 总是返回一个布尔值。用例是什么?

标签: python selenium selenium-webdriver webdriver webdriverwait


【解决方案1】:

如果不使用多个 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"))
    
  • 使用XPATH

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

参考

您可以在以下位置找到一些相关讨论:

【讨论】:

  • 多重匹配 By.xpath 为我工作。这有点奇怪,但它有效。附言这是 Selenium 通用的,而不是 Python 特有的。
猜你喜欢
  • 1970-01-01
  • 2013-03-09
  • 1970-01-01
  • 2020-06-09
  • 2012-01-18
  • 1970-01-01
  • 2016-04-14
  • 2018-02-19
  • 1970-01-01
相关资源
最近更新 更多