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

相关推荐
2201_756206342 分钟前
1111111
开发语言·python
魔道不误砍柴功15 分钟前
Java Function 高级使用技巧:从工程实战中来
java·开发语言·python
TU不秃头15 分钟前
爬虫实战五:云锁WAF机制
爬虫
xixihaha132420 分钟前
使用Flask快速搭建轻量级Web应用
jvm·数据库·python
超越自我肖22 分钟前
python--while循环的基础案例
python
2501_9216494922 分钟前
免费港股实时行情 API:功能、性能与接入指南
开发语言·后端·python·金融·restful
zh路西法23 分钟前
【宇树机器人强化学习】(四):Go2基础训练以及参数调节与解析
python·深度学习·ubuntu·机器学习·机器人
码路飞27 分钟前
315 曝光 AI 投毒产业链,我写了个 Python 脚本检测 AI 回答有没有「中毒」
python·aigc
q_354888515331 分钟前
计算机毕业设计源码:锦江酒店大数据分析与个性化推荐系统 Django框架 Vue 可视化 Hadoop 爬虫 协同过滤推荐算法 民宿 客栈(建议收藏)✅
python·机器学习·信息可视化·数据分析·django·课程设计·旅游
sg_knight39 分钟前
设计模式实战:代理模式(Proxy)
python·设计模式·代理模式·proxy