【问题标题】:Find elements before page is fully loaded using Selenium使用 Selenium 在页面完全加载之前查找元素
【发布时间】:2021-07-05 21:42:05
【问题描述】:

我正在使用 Selenium python 自动化网页,自动化必须非常快速。

因此,我想在页面完全加载之前找到一个元素。但是,Selenium 的 get 方法似乎要等到每个图像和 CSS 都完全加载。

我使用 driver.set_page_load_timeout(1) 方法不等到页面加载。但在超时异常时,Chrome 浏览器也会停止加载或呈现页面。

有没有办法在超时异常之后继续加载页面?

我想依靠 WebDriverWait 来知道元素的存在。

try:
    self.driver.set_page_load_timeout(1)
    url = "http://test.com"
    self.driver.get(url)
except Exception as ex:
    pass

WebDriverWait(driver, 100, poll_frequency=0.1).until(EC.presence_of_element_located(By.ID, "search_button")).click()

【问题讨论】:

  • 只有presence_of_element_located 等待,您将无法单击按钮。

标签: python selenium automation


【解决方案1】:

如果您想点击它,请尝试使用 element_to_be_clickable

WebDriverWait(driver, 100, poll_frequency=0.1).until(EC.element_to_be_clickable(By.ID, "search_button")).click()

【讨论】:

  • 在页面完全加载之前,代码甚至不会在 .get() 方法之后进入下一行。
猜你喜欢
  • 1970-01-01
  • 2021-07-09
  • 1970-01-01
  • 2021-12-21
  • 1970-01-01
  • 2022-11-30
  • 1970-01-01
  • 2014-03-27
  • 1970-01-01
相关资源
最近更新 更多