python - 用于尽快检查硒中是否存在元素的 Python 代码
问题描述
我是 Python 新手,我正在尝试编写程序代码来尽快检查页面中是否存在或存在元素 ID,如果不存在,它会不断刷新页面直到它存在..
我通过 ID 尝试了 driver.find_element 和 try 和 except,执行该过程大约需要六秒钟我需要一个更快的方法来检查元素是否存在
我过去的代码是:
while true:
try:
a = driver.find_element_by_id('ID')
break
except NoSuchElementException:
driver.refresh()
它工作正常,但我想知道是否有办法让这个过程更快.. 谢谢,
解决方案
这取决于网站如何使元素出现。
如果它是一个相对静态的网站,这意味着元素只能在刷新后出现,那么你的代码是最快的代码。
如果元素是使用 javascript 创建的,这意味着即使没有刷新它也会出现在网站上,那么这可能会更快:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, 'ID'))
)
它每 500 毫秒检查一次元素,直到找到它或 10 秒后超时。
阅读此处了解更多信息:https ://selenium-python.readthedocs.io/waits.html
推荐阅读
- grails - 如何将 Groovy 脚本映射到 Nexus 脚本 API 并以 JSON 格式传递参数
- wordpress - 如何构建一个 Vue.js 项目以在 wordpress 中使用它
- javascript - “调整大小”窗口事件似乎只在垂直调整大小时触发
- javascript - 将 json 排序为包含唯一值数组的 json 的 sort 方法
- ios - 如何在映射之前修改 Moya 响应?
- java - 日历给出错误的日期
- gradle - 为什么 Gradle 构建因 java11 和 jfreechart 依赖而失败?
- javascript - 使用 ASP.NET Web API 在 Angular 6 中下载文件
- python - 使用正则表达式或任何其他方法从电子邮件字符串中提取所有日期模式的最佳方法?
- java - Chrome 如何在可绘制对象中将文本添加到选项卡切换器?