Selenium 预期条件,等到元素可交互?
Posted
技术标签:
【中文标题】Selenium 预期条件,等到元素可交互?【英文标题】:Selenium Expected Conditions, Wait until element is interactable? 【发布时间】: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 崩溃和崩溃。 【参考方案1】:element_to_be_clickable()
element_to_be_clickable() 是用于检查元素是否可见和启用的期望,以便您可以click()它。
ElementNotInteractableException
不幸的是,没有具体的expected_conditions 和ElementNotInteractableException,它的发生可能有很多原因,其中一些是:
降低超时间隔。在这些情况下,您必须按如下方式增加 超时:
wait = WebDriverWait(driver, 20)
选择并调用click()
外部/父元素而不是子元素。
一个典型的场景是定位 <input>
,其中有一个相关的 <label>
元素。
【讨论】:
以上是关于Selenium 预期条件,等到元素可交互?的主要内容,如果未能解决你的问题,请参考以下文章