📅  最后修改于: 2023-12-03 14:56:30.716000             🧑  作者: Mango
硒 (Selenium) 是一个自动化测试工具,它可以使用多种编程语言控制浏览器进行测试。在 Python 中,我们可以使用 Selenium 的 Python 绑定库 selenium 来控制浏览器。硒驱动程序是 Selenium 浏览器的核心组件之一,用于与浏览器建立连接并执行指令。
在使用 Selenium 进行自动化测试时,经常需要使用到等待功能。等待功能是指在某些条件满足之前程序会暂停执行,等待条件达成后再继续执行。
在 Selenium 中,有三种等待方式:隐式等待、显示等待和线程休眠。下面分别介绍这三种等待方式。
隐式等待是指在访问页面或查找元素时,如果没有立即找到该元素,程序会等待一段时间再重新查找,直到超过设定的最长等待时间为止。隐式等待使用 implicitly_wait()
方法实现。
from selenium import webdriver
browser = webdriver.Chrome()
browser.implicitly_wait(10) # 等待最长时间为 10 秒
browser.get('http://www.example.com')
显示等待是指在查找元素时,如果没有立即找到该元素,程序会等待一段时间再重新查找,直到某个条件满足为止。显示等待使用 WebDriverWait()
和 expected_conditions
模块实现。
下面是一个例子,等待页面上某个元素可见,最长等待时间为 10 秒。
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
browser = webdriver.Chrome()
browser.get('http://www.example.com')
wait = WebDriverWait(browser, 10) # 等待最长时间为 10 秒
element = wait.until(EC.visibility_of_element_located((By.ID, 'example')))
线程休眠是指程序执行到某个地方后停顿一段时间再继续执行。线程休眠使用 time.sleep()
方法实现。
import time
time.sleep(10) # 等待最长时间为 10 秒
在使用 Selenium 进行自动化测试时,等待功能是必不可少的。我们可以用隐式等待、显示等待和线程休眠等不同的方法实现等待功能,具体使用哪种方法要根据实际情况来决定。