首页 > 解决方案 > 使用 Selenium 在页面完全加载之前查找元素

问题描述

我正在使用 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()

标签: pythonseleniumautomation

解决方案


如果要单击它,请尝试使用element_to_be_clickable :

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

推荐阅读