webdriver 等待页面加载完成_selenium(十)脚本中的延时等待处理
时间: 2023-09-03 15:13:31 浏览: 147
好的,关于Webdriver等待页面加载完成的问题,Selenium提供了三种等待方式:
1. 强制等待:使用time.sleep()方法强制等待一定时间,不管页面是否加载完成。
2. 隐式等待:使用driver.implicitly_wait()方法,在一定时间范围内等待页面加载完成,如果在规定时间内加载完成,则继续执行下一步操作;如果超时,则抛出异常。
3. 显式等待:使用WebDriverWait类,可以根据特定的条件等待页面加载完成,如果在规定时间内满足条件,则继续执行下一步操作;如果超时,则抛出异常。
其中,显式等待是最常用的方式,因为它可以根据特定条件等待页面加载完成,比较灵活。示例代码如下:
```python
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
# 等待元素可见
element = WebDriverWait(driver, 10).until(
EC.visibility_of_element_located((By.ID, "myDynamicElement"))
)
# 等待元素可点击
element = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.ID, "myDynamicElement"))
)
```
以上代码中,WebDriverWait类会等待10秒钟,直到特定条件满足,然后继续执行下一步操作。如果超时,则抛出异常。其中,By类可以根据元素的ID、class、name、tag name、link text、partial link text、CSS selector等方式定位元素;expected_conditions类提供了很多条件,比如元素可见、元素可点击、元素存在、元素包含文本等等。具体可以参考官方文档。
阅读全文