解决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这个库,这里提供给各位一个思路,如果各位有更好的思路欢迎在评论区跟我交流 : )

相关推荐
leaf_leaves_leaf8 分钟前
win11用一条命令给anaconda环境安装GPU版本pytorch,并检查是否为GPU版本
人工智能·pytorch·python
夜雨飘零113 分钟前
基于Pytorch实现的说话人日志(说话人分离)
人工智能·pytorch·python·声纹识别·说话人分离·说话人日志
404NooFound20 分钟前
Python轻量级NoSQL数据库TinyDB
开发语言·python·nosql
美团测试工程师24 分钟前
九大高效的前端测试工具与框架
软件测试·测试工具·jmeter
天天要nx32 分钟前
D102【python 接口自动化学习】- pytest进阶之fixture用法
python·pytest
minstbe32 分钟前
AI开发:使用支持向量机(SVM)进行文本情感分析训练 - Python
人工智能·python·支持向量机
落魄实习生1 小时前
AI应用-本地模型实现AI生成PPT(简易版)
python·ai·vue·ppt
苏言の狗1 小时前
Pytorch中关于Tensor的操作
人工智能·pytorch·python·深度学习·机器学习
用余生去守护1 小时前
python报错系列(16)--pyinstaller ????????
开发语言·python
数据小爬虫@1 小时前
利用Python爬虫快速获取商品历史价格信息
开发语言·爬虫·python