python - 使用 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()
解决方案
如果要单击它,请尝试使用element_to_be_clickable :
WebDriverWait(driver, 100, poll_frequency=0.1).until(EC.element_to_be_clickable(By.ID, "search_button")).click()
推荐阅读
- node.js - 如何在 cPanel 上部署带有 SSR 的 React 应用程序?
- twitter-bootstrap - 最新的 Bootstrap 5.1 下拉示例不起作用
- c# - 从 foreach 循环 ASP.NET Core 5.0 返回一个变量
- java - Eclipse:无法使用编辑器打开 Jspf
- javascript - 如何定义具有动态键的类?
- javascript - 无法在 Internet Explorer 的同一会话中多次获取数据
- konva - Konva 中形状的“id”和“name”的不同用途是什么
- python - 无法使用 python 从 BLE 设备读取特定特征
- android - Android Gradle 插件函数列表
- flutter - Flutter - 在构建之前调用 setState()