Selenium基础操作方法详解


Selenium基础操作方法详解:从零开始编写自动化脚本(附完整代码)


引言

Selenium是自动化测试和网页操作的利器,但对于新手来说,掌握基础操作是成功的第一步。本文将手把手教你使用Selenium完成浏览器初始化、元素定位、表单操作等核心功能,并提供可直接运行的Python代码示例,助你快速入门!


一、环境准备

在开始前,确保已安装以下内容:

  1. 安装Selenium库

    bash 复制代码
    pip install selenium
  2. 下载浏览器驱动


二、初始化浏览器驱动

以Chrome为例,启动浏览器并打开网页:

python 复制代码
from selenium import webdriver
from selenium.webdriver.chrome.service import Service

# 指定驱动路径(根据实际路径修改)
service = Service(executable_path="chromedriver.exe")  # 根据实际路径修改
driver = webdriver.Chrome(service=service)

# 打开网页
driver.get("https://www.example.com")

# 最大化浏览器窗口
driver.maximize_window()

三、元素定位与操作

1. 八大元素定位方式
python 复制代码
from selenium.webdriver.common.by import By

# 通过ID定位(最常用)
element = driver.find_element(By.ID, "username")

# 通过Class Name定位
element = driver.find_element(By.CLASS_NAME, "input-field")

# 通过标签名定位
element = driver.find_element(By.TAG_NAME, "input")

# 通过Name属性定位
element = driver.find_element(By.NAME, "password")

# 通过链接文本定位(精确匹配)
element = driver.find_element(By.LINK_TEXT, "点击登录")

# 通过部分链接文本定位(模糊匹配)
element = driver.find_element(By.PARTIAL_LINK_TEXT, "登录")

# 通过CSS选择器定位(推荐)
element = driver.find_element(By.CSS_SELECTOR, "#submit-btn .icon")

# 通过XPath定位(复杂结构适用)
element = driver.find_element(By.XPATH, "//div[@id='header']//a[text()='首页']")
2. 输入文本与点击按钮
python 复制代码
# 在输入框输入内容
driver.find_element(By.ID, "search-box").send_keys("Selenium教程")

# 点击按钮
driver.find_element(By.CSS_SELECTOR, "#search-button").click()

# 清空输入框
driver.find_element(By.ID, "search-box").clear()

四、页面导航与窗口操作

python 复制代码
# 刷新页面
driver.refresh()

# 后退到上一页
driver.back()

# 前进到下一页
driver.forward()

# 获取当前页面标题
print(driver.title)

# 获取当前URL
print(driver.current_url)

# 切换浏览器标签页
for handle in driver.window_handles:
    driver.switch_to.window(handle)  # 切换到最新打开的标签页

五、处理表单与下拉菜单

python 复制代码
from selenium.webdriver.support.select import Select

# 选择单选按钮
driver.find_element(By.CSS_SELECTOR, "input[type='radio'][value='male']").click()

# 勾选复选框
checkbox = driver.find_element(By.ID, "agree-terms")
if not checkbox.is_selected():
    checkbox.click()

# 操作下拉菜单
dropdown = Select(driver.find_element(By.ID, "country"))
dropdown.select_by_visible_text("中国")       # 按文本选择
dropdown.select_by_value("CN")              # 按value属性选择
dropdown.select_by_index(1)                 # 按索引选择

六、等待机制

1. 强制等待(不推荐,仅用于测试)
python 复制代码
import time
time.sleep(3)  # 强制等待3秒
2. 隐式等待(全局设置)
python 复制代码
driver.implicitly_wait(10)  # 最多等待10秒,找不到元素则报错
3. 显式等待(推荐)
python 复制代码
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 等待元素可见
element = WebDriverWait(driver, 10).until(
    EC.visibility_of_element_located((By.ID, "loading"))
)

# 等待元素可点击
button = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.ID, "submit-btn"))
)

七、截图与关闭浏览器

python 复制代码
# 截取整个页面并保存
driver.save_screenshot("screenshot.png")

# 关闭当前标签页
driver.close()

# 完全退出浏览器
driver.quit()

八、完整案例:自动化搜索

python 复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 初始化浏览器
service = Service(executable_path="chromedriver.exe")  # 根据实际路径修改
driver = webdriver.Chrome(service=service)
driver.get("https://www.baidu.com")

# 输入关键词并搜索
search_box = driver.find_element(By.ID, "kw")
search_box.send_keys("Selenium自动化测试")
search_box.submit()  # 提交表单

# 等待结果加载
WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, "h3"))
)

# 打印第一条结果的标题
results = driver.find_elements(By.CSS_SELECTOR, "h3")
print("第一条结果:", results[0].text)

# 关闭浏览器
driver.quit()

注意:示例代码 chromedriver.exe 放置在脚本的同级目录下,请根据实际情况修改。


结语

通过本文的代码示例,你已经掌握了Selenium的基础操作,包括浏览器控制、元素定位、表单填写和等待机制。接下来,可以尝试以下练习:

  1. 编写一个自动化登录脚本
  2. 爬取动态加载的网页数据
  3. 实现多标签页切换操作
相关推荐
MESMarketing4 小时前
互动分享 | Shift-Left实践落地
功能测试·测试工具·自动化·自动驾驶·敏捷开发
lifewange13 小时前
主流性能诊断工具
测试工具
程序员杰哥1 天前
独立搭建UI自动化测试框架
自动化测试·软件测试·python·selenium·测试工具·ui·测试用例
PhotonixBay1 天前
激光共聚焦显微镜如何实现CVD石墨烯实时质量控制
人工智能·测试工具
zhonghaoxincekj2 天前
轴距可调式元器件双边无损成形钳
经验分享·科技·深度学习·学习·测试工具·创业创新·制造
lifewange2 天前
Cucumber 测试工具通俗讲解
测试工具
Luminbox紫创测控2 天前
太阳光模拟器在化妆品光稳定性测试的应用
测试工具·安全性测试·测试标准
研究点啥好呢3 天前
凯捷 自动化测试(Java+Selenium)面试题精选:10道高频考题+答案解析
java·开发语言·python·selenium·测试工具·求职招聘
阿斯加德D3 天前
天国:拯救 2风灵月影修改器下载(已汉化)2026最新版下载分享
测试工具·游戏·3d·游戏程序