selenium -- 等待网页加载完成
selenium – 等待网页加载完成
使用elenium做项目时候通常需要等待网页完全加载后再执行某些操作
例如需要爬取一个动态表格的数据,需要等待JS完全加载后从后端拿到数据渲染
环境:
系统: Windows10
Python: Python 3.8.7
Selenium: 4.2.0
1、Selenium等待方式
详情请查看官方文档: https://www.selenium.dev/zh-cn/documentation/webdriver/waits/
1.1、显式等待(Explicit wait)
根据等待条件进行等待, 只有等待条件为 true
时再继续执行,反正将一直等待直到超时
1.2、隐式等待(Implicit wait)
全局等待, 只有网页完全加载时才继续执行, 否则将一直等待直到超时
1.3、流畅等待(Fluent Wait)
多配置版等待,可以配置 最长等待时间, 轮询频率, 忽略等待时出现的特定类型的异常(例如在页面上搜索元素时出现的 NoSuchElementException
异常)等
2、等待页面加载完成的方法
2.1、使用隐式等待
了解了Selenium的各种等待方法后,很自然地选择了 隐式等待
,因为它是全局地,并且会循环检查页面元素是否加载,否则将会一直等待,直到超时或者加载完成
1 |
|
2.2、使用显式等待 + JS动态插入元素检查
还有一种方法是利用显式等待配置JS动他插入元素地方式来实现, 原理:
使用JS动态插入一个div元素作为标记元素, 然后使用显式等待, 等待条件为标记元素出现
1 |
|
selenium -- 等待网页加载完成
http://example.com/2022/06/17/selenium-waits-for-the-page-to-load/