【问题标题】:Selenium Expected Conditions, Wait until element is interactable?Selenium 预期条件,等到元素可交互?
【发布时间】:2022-01-22 13:49:01
【问题描述】:

有没有办法绕过 selenium 中的 elementNotInteractable 异常?我用过

wait.until(ec.element_to_be_clickable())

但我的代码仍会在元素完全可交互之前尝试与它们进行交互。问题是我在定义等待时没有将延迟设置得足够高吗?或者有没有类似的功能

ec.element_to_be_interactable()

哪个检查元素是否可交互?

【问题讨论】:

  • 您尝试与之交互的 html 元素以及该元素的 url。
  • 不确定是否有更易访问的示例,但我正在尝试访问 TCGPlayer 卖家门户中的搜索栏,在更改搜索功能的下拉菜单。我不得不在 time.sleep() 中反复编写代码来绕过等待,因为使用 clickable 只会导致 selenium 崩溃和崩溃。

标签: python selenium selenium-webdriver webdriverwait expected-condition


【解决方案1】:

element_to_be_clickable()

element_to_be_clickable() 是用于检查元素是否可见启用的期望,以便您可以click()它。


ElementNotInteractableException

不幸的是,没有具体的expected_conditionsElementNotInteractableException,它的发生可能有很多原因,其中一些是:

  • 降低超时间隔。在这些情况下,您必须按如下方式增加 超时

    wait = WebDriverWait(driver, 20)
    
  • 选择并调用click() 外部/父元素而不是子元素。

  • 一个典型的场景是定位 <input>,其中有一个相关的 <label> 元素。

【讨论】:

    猜你喜欢
    • 2020-03-26
    • 2019-11-25
    • 2021-08-02
    • 1970-01-01
    • 2021-03-12
    • 2020-03-08
    • 2021-12-16
    • 2021-04-22
    相关资源
    最近更新 更多