3

间歇性单击元素时出现 TimeoutExceptions。我尝试过显式等待和 time.sleep()。它工作了一段时间,我再次遇到异常。

我想了解它是否是由预期条件引起的。

WebDriverWait(self.driver, 40).until(EC.element_to_be_clickable((By.XPATH, <locator>  ))).click()

如果我使用以下条件,是否有助于避免超时异常?

element = WebDriverWait(self.driver, 40).until(EC.presence_of_element_located((By.XPATH, <locator>  )))
element.click()
4

1 回答 1

3

基于 selenium 的官方文档和代码实现。

presence_of_element_located(locator)定义:

检查页面的 DOM 上是否存在元素的期望。这并不一定意味着该元素是可见的。定位器 - 用于查找元素,一旦定位就返回 WebElement

element_to_be_clickable(locator)

检查元素的期望是可见的并启用,以便您可以单击它。

预期条件在定义的超时期限内循环执行条件。它将轮询直到true返回条件。如果false返回,它将继续循环,直到达到最大超时。

于 2020-04-29T07:40:28.343 回答