当前位置: 首页 > news >正文

解决selenium的getdrive()方法阻塞问题

  • selenium里面的Webdriver的get()方法默认是阻塞的,也就是说要等整个页面全都加载完它才会相应。
  • 但我们大部分时候不需要用到页面里的所有东西,也许只需要用到里面的一个元素就行了

所以下面是我的解决方法:

初始化代码:

# 设置driver.get()非阻塞
option = webdriver.ChromeOptions()
option.page_load_strategy = 'none'  # 设置 pageLoadStrategy 为 "none" (也就是非阻塞)
driver = webdriver.Chrome(options=option)
driver.get("https://baidu.com") # 替换你的目标网站
  • 那么问题来了,设置为非阻塞确实能大大节约时间,但有可能你想要的网页上的那个元素还没加载出来,他就给你继续做下面的操作了,这怎么办。

我的解决方法是:用while循环判断找到符合条件元素的个数。如果是0,那就继续找;如果非0,就表明找到了,就可以跳出循环,做接下来的操作了。

代码:

while True:elem = driver.find_elements(By.XPATH, xpath)print('cnt :', len(elem))if len(elem) > 0:elem = elem[0]break# 找到元素,跳出循环后,做你接下来的事情

当然我也是刚了解selenium这个库,这里提供给各位一个思路,如果各位有更好的思路欢迎在评论区跟我交流 : )

http://www.lryc.cn/news/142808.html

相关文章:

  • js的闭包
  • ubuntu20.04 直接安装vpp23.06 测试双 VPP Tunnel Ike2
  • mysql sql 执行流程
  • go-kafka
  • 如何在windows电脑上安装多个node,并可以进行随意切换
  • 《机器学习核心技术》分类算法 - 决策树
  • aws PinPoint发附件demo
  • 边写代码边学习之Bidirectional LSTM
  • Django学习笔记-实现联机对战
  • nacos总结1
  • Web安全测试(三):SQL注入漏洞
  • Webstorm 入门级玩转uni-app 项目-微信小程序+移动端项目方案
  • 从零开始的Hadoop学习(三)| 集群分发脚本xsync
  • golang http transport源码分析
  • spring boot 项目整合 websocket
  • 统计学补充概念-17-线性决策边界
  • 指针变量、指针常量与常量指针的区别
  • mq与mqtt的关系
  • 代码大全阅读随笔 (二)
  • vue 项目的屏幕自适应方案
  • 23软件测试高频率面试题汇总
  • PHP8的匿名函数-PHP8知识详解
  • Redis—Redis介绍(是什么/为什么快/为什么做MySQL缓存等)
  • C语言链表梳理-2
  • 【深度学习】实验03 特征处理
  • 基于Dpabi的功能连接
  • 在React项目是如何捕获错误的?
  • 基于内存池的 简单高效的数据库 SDK简介
  • python实例方法,类方法和静态方法区别
  • Pyecharts教程(四):使用pyecharts绘制3D折线图