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

相关推荐
whcyhhh21 分钟前
头歌实践教学平台:大数据存储2023(六)
大数据·数据库·python
for_ever_love__1 小时前
python基础语法学习: 闭包
开发语言·python·学习·闭包
ly76891 小时前
Python 全面入门:从核心语法到工程实践
开发语言·python
Niuguangshuo3 小时前
DeepFilterNet 3:端侧实时全带降噪的开源标杆
python
第一程序员3 小时前
AI 辅助编程的 7 个误区:把模型当高级搜索引擎是对它的最大浪费
python·rust·github
Groundwork Explorer4 小时前
W5500 网卡编程初始化与使用指南
python·单片机
逸Y 仙X5 小时前
MCP(模型控制协议)完全指南:从核心概念到实战开发
python·大模型·llm·ai编程·mcp
WILLF5 小时前
前端视角:Python requests vs JS axios
前端·python
哒哒哒5285206 小时前
69. Python: 核心语法-面向对象基础-案例(教务系统)
python
何以解忧,唯有..6 小时前
Python 中获取目录操作完全指南
windows·python·microsoft