在 Selenium 自动化测试中,常用方法主要围绕浏览器控制 、元素定位 、元素操作 以及等待机制这四大核心模块展开。
浏览器控制方法
主要用于控制浏览器的基本行为和获取页面信息。
| 方法 | 功能说明 |
|---|---|
driver.get(url) |
打开指定的网页 URL |
driver.maximize_window() |
最大化浏览器窗口 |
driver.refresh() |
刷新当前页面 |
driver.back() / forward() |
模拟浏览器的后退与前进 |
driver.quit() |
关闭浏览器并退出 WebDriver 会话 |
driver.title / current_url |
获取当前页面的标题与 URL |
元素定位方法
Selenium 提供了多种方式来精准定位页面上的元素(推荐使用 By 类进行定位):
ID 定位:driver.find_element(By.ID, "username")(最常用,速度最快)
Name 定位:driver.find_element(By.NAME, "password")
XPath 定位:driver.find_element(By.XPATH, "//button[text()='登录']")(功能最强大,可定位复杂元素)
CSS 选择器:driver.find_element(By.CSS_SELECTOR, ".btn-primary")(语法简洁,定位速度快)
链接文本定位:driver.find_element(By.LINK_TEXT, "立即注册")
元素常用操作方法
定位到元素后,可以对元素对象进行以下交互:
输入文本:element.send_keys("自动化测试")(常用于输入框)
点击元素:element.click()(常用于按钮、链接、复选框)
清空内容:element.clear()(输入前先清空,避免默认文本干扰)
获取文本:text = element.text(获取元素的可见文本内容)
获取属性:href = element.get_attribute("href")(获取元素的指定属性值)
状态判断:
element.is_displayed():判断元素是否可见
element.is_enabled():判断元素是否可用(未被禁用)
等待机制方法
为了防止页面加载过慢导致找不到元素报错,等待机制至关重要:
隐式等待:driver.implicitly_wait(10)。全局设置,在查找元素时如果未找到,会默认等待指定的秒数。
显式等待(推荐使用):配合 WebDriverWait 和 expected_conditions,可以精准等待某个条件成立(如元素可见、元素可点击)再继续执行。
综合代码示例
将上述常用方法串联起来,形成一个完整的百度搜索流程:
python
`# 1. 启动浏览器
driver = webdriver.Chrome()
try:
# 2. 浏览器控制:打开网页并最大化
driver.get("https://www.baidu.com")
driver.maximize_window()
# 3. 等待机制:显式等待搜索框加载完成(最多等10秒)
search_box = WebDriverWait(driver, 10).until(
# 等待并检查 ID 为 kw 的网页元素是否已经加载到了页面的 DOM(文档对象模型)结构中。
EC.presence_of_element_located((By.ID, "kw"))
)
# 4. 元素操作:清空、输入文本
search_box.clear()
search_box.send_keys("Selenium 常用方法")
# 5. 元素定位与点击:定位搜索按钮并点击
search_button = driver.find_element(By.ID, "su")
search_button.click()
# 6. 获取信息:打印当前页面的标题和URL
print(f"当前页面标题:{driver.title}")
print(f"当前页面URL:{driver.current_url}")
finally:
# 7. 退出浏览器
driver.quit()