selenium中WebDriverWait 用法
时间: 2024-04-30 13:18:28 浏览: 174
WebDriverWait 是 Selenium 中的一个等待类,它可以让我们在等待页面元素加载完成后再执行下一步操作,避免出现元素还未加载完成就开始执行操作的情况。
下面是 WebDriverWait 的用法:
1. 导入 WebDriverWait:
```python
from selenium.webdriver.support.ui import WebDriverWait
```
2. 创建 WebDriverWait 对象,设置等待时间和轮询时间:
```python
wait = WebDriverWait(driver, timeout, poll_frequency=0.5)
```
其中,driver 是 WebDriver 对象,timeout 是最长等待时间(单位为秒),poll_frequency 是轮询时间(单位为秒),默认值为 0.5 秒。
3. 使用 WebDriverWait 等待元素加载完成:
```python
element = wait.until(EC.presence_of_element_located((By.ID, 'myElement')))
```
上面的代码会等待直到 ID 为 myElement 的元素加载完成,如果等待时间超过了 timeout,就会抛出 TimeoutException 异常。
其中,EC 是 ExpectedConditions 类,By 是 By 类,这两个类都需要从 selenium.webdriver.support 包中导入。presence_of_element_located 方法是 EC 类中的一个静态方法,它表示等待元素出现在 DOM 中。
4. 可以使用其他的 ExpectedConditions 方法等待元素,例如:
```python
element = wait.until(EC.visibility_of_element_located((By.ID, 'myElement')))
```
上面的代码表示等待 ID 为 myElement 的元素在页面中可见后再执行下一步操作。
5. 最后,记得在使用完 WebDriverWait 后要关闭浏览器:
```python
driver.quit()
```
以上就是 WebDriverWait 的基本用法。
阅读全文