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

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

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

初始化代码:

python 复制代码
# 设置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,就表明找到了,就可以跳出循环,做接下来的操作了。

代码:

python 复制代码
while True:
    elem = driver.find_elements(By.XPATH, xpath)
    print('cnt :', len(elem))
    if len(elem) > 0:
        elem = elem[0]
        break

# 找到元素,跳出循环后,做你接下来的事情

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

相关推荐
CodeCraft Studio1 小时前
PDF处理控件Aspose.PDF教程:使用 Python 将 PDF 转换为 Base64
开发语言·python·pdf·base64·aspose·aspose.pdf
困鲲鲲2 小时前
Python中内置装饰器
python
摩羯座-185690305943 小时前
Python数据可视化基础:使用Matplotlib绘制图表
大数据·python·信息可视化·matplotlib
爱隐身的官人3 小时前
cfshow-web入门-php特性
python·php·ctf
gb42152874 小时前
java中将租户ID包装为JSQLParser的StringValue表达式对象,JSQLParser指的是?
java·开发语言·python
THMAIL4 小时前
量化股票从贫穷到财务自由之路 - 零基础搭建Python量化环境:Anaconda、Jupyter实战指南
linux·人工智能·python·深度学习·机器学习·金融
~-~%%4 小时前
从PyTorch到ONNX:模型部署性能提升
人工智能·pytorch·python
蒋星熠4 小时前
Flutter跨平台工程实践与原理透视:从渲染引擎到高质产物
开发语言·python·算法·flutter·设计模式·性能优化·硬件工程
爬虫程序猿5 小时前
《京东商品详情爬取实战指南》
爬虫·python
胡耀超5 小时前
4、Python面向对象编程与模块化设计
开发语言·python·ai·大模型·conda·anaconda