selenium 等待跳转

在使用 Selenium 进行自动化测试时,有时候需要等待页面跳转完成后再进行后续操作。这时候可以使用 Selenium 的等待机制来实现。

Selenium 提供了两种等待方式:隐式等待和显式等待。

隐式等待是设置一个全局等待时间,在等待时间内,如果元素没有出现,Selenium 会持续等待,等待时间到了后,如果还没有找到元素,就会抛出异常。

示例代码如下:

from selenium import webdriver
driver = webdriver.Chrome()
driver.implicitly_wait(10) # 设置全局等待时间为 10 秒
driver.get('https://www.baidu.com')
input_element = driver.find_element_by_name('wd')
input_element.send_keys('Selenium')
input_element.submit()

在上面的代码中,我们通过 implicitly_wait 方法设置全局等待时间为 10 秒,然后打开百度首页,在搜索框中输入关键字,并提交表单。如果搜索结果页面在 10 秒内没有加载完成,Selenium 就会抛出异常。

显式等待是在代码中指定等待的条件,如果等待条件满足,就继续执行后续操作,否则就一直等待,直到超时或者等待条件满足。

示例代码如下:

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.baidu.com')
input_element = driver.find_element_by_name('wd')
input_element.send_keys('Selenium')
input_element.submit()
# 等待搜索结果页面加载完成
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'content_left')))

在上面的代码中,我们使用 WebDriverWait 方法设置等待条件,也就是在 10 秒内等待搜索结果页面中的 content_left 元素出现。如果超时或者找不到这个元素,就会抛出异常。

这就是使用 Selenium 等待页面跳转的两种方式。通过合理地使用这两种等待方式,我们可以更加精确地控制自动化测试的流程,提高测试的效率和可靠性。

  •