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

相关推荐
Robot侠2 小时前
极简LLM入门指南4
大数据·python·llm·prompt·提示工程
等....2 小时前
Miniconda使用
开发语言·python
Java&Develop3 小时前
Aes加密 GCM java
java·开发语言·python
爱笑的眼睛114 小时前
超越MSE与交叉熵:深度解析损失函数的动态本质与高阶设计
java·人工智能·python·ai
Rose sait5 小时前
【环境配置】Linux配置虚拟环境pytorch
linux·人工智能·python
过期动态5 小时前
JDBC高级篇:优化、封装与事务全流程指南
android·java·开发语言·数据库·python·mysql
一世琉璃白_Y6 小时前
pg配置国内数据源安装
linux·python·postgresql·centos
liwulin05066 小时前
【PYTHON】COCO数据集中的物品ID
开发语言·python
小鸡吃米…6 小时前
Python - XML 处理
xml·开发语言·python·开源
冰敷逆向6 小时前
苏宁滑块VMP深入剖析(一):解混淆篇
javascript·爬虫·安全·web