selenium 等待方式
时间: 2023-09-06 08:11:14 浏览: 100
Selenium 提供了多种等待方式来处理页面加载、元素查找和执行操作的延迟。以下是一些常用的等待方式:
1. 隐式等待(Implicit Wait):在查找元素时,设置一个全局的等待时间,如果在指定时间内找到了元素,则继续执行后续操作;如果超过了指定时间仍未找到元素,则抛出 NoSuchElementException 异常。
```python
from selenium import webdriver
driver = webdriver.Chrome()
driver.implicitly_wait(10) # 设置全局的等待时间为10秒
driver.get('https://www.example.com')
element = driver.find_element_by_xpath('//input[@id="username"]') # 隐式等待10秒
```
2. 显式等待(Explicit Wait):在特定条件满足时继续执行后续操作,或者超时后抛出 TimeoutException 异常。
```python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get('https://www.example.com')
wait = WebDriverWait(driver, 10) # 设置最长等待时间为10秒
element = wait.until(EC.presence_of_element_located((By.XPATH, '//input[@id="username"]'))) # 显式等待10秒,直到元素出现
```
3. 线程休眠(Thread Sleep):使用 time 模块的 sleep 方法来暂停执行一定的时间。
```python
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.example.com')
time.sleep(5) # 线程休眠5秒
element = driver.find_element_by_xpath('//input[@id="username"]')
```
这些等待方式可以根据具体的测试场景和需求选择使用。
阅读全文