Selenium 实战案例:Web 表单自动化测试的完整实现流程
环境准备与依赖安装
确保已安装Python环境(建议3.7及以上版本),通过pip安装Selenium库:
pip install selenium
下载与浏览器版本匹配的WebDriver(如ChromeDriver),并将其路径添加到系统环境变量中。
初始化WebDriver与页面访问
使用Selenium的WebDriver启动浏览器并打开目标页面:
from selenium import webdriver
driver = webdriver.Chrome() # 使用Chrome浏览器
driver.get("https://example.com/form") # 替换为目标表单URL
表单元素定位与操作
通过ID、XPath或CSS选择器定位输入框、下拉框等元素,并模拟用户输入:
# 定位文本输入框并输入内容
name_field = driver.find_element("id", "username")
name_field.send_keys("TestUser")
# 定位下拉框并选择选项
from selenium.webdriver.support.ui import Select
dropdown = Select(driver.find_element("id", "country"))
dropdown.select_by_visible_text("China")
# 定位复选框并勾选
checkbox = driver.find_element("css selector", "input[type='checkbox']")
checkbox.click()
表单提交与结果验证
模拟提交操作并验证返回结果是否符合预期:
submit_button = driver.find_element("xpath", "//button[@type='submit']")
submit_button.click()
# 验证提交后页面是否跳转或显示成功消息
success_message = driver.find_element("class name", "alert-success").text
assert "Submission successful" in success_message
异常处理与日志记录
添加异常捕获逻辑和日志记录,增强脚本健壮性:
import logging
logging.basicConfig(filename='form_test.log', level=logging.INFO)
try:
# 表单操作代码
except Exception as e:
logging.error(f"Test failed: {str(e)}")
driver.save_screenshot("error_screenshot.png") # 保存错误截图
finally:
driver.quit() # 确保浏览器关闭
测试脚本封装与参数化
使用单元测试框架(如unittest或pytest)封装脚本,支持多组测试数据:
import pytest
@pytest.mark.parametrize("username, country", [("User1", "China"), ("User2", "USA")])
def test_form_submission(username, country):
driver = webdriver.Chrome()
driver.get("https://example.com/form")
# 使用参数化数据填充表单
driver.find_element("id", "username").send_keys(username)
Select(driver.find_element("id", "country")).select_by_visible_text(country)
driver.quit()
执行测试与报告生成
通过命令行运行测试并生成HTML报告(以pytest为例):
pytest test_forms.py --html=report.html
报告包含用例执行详情、失败原因及截图,便于问题追踪。
持续集成集成
将脚本集成到CI/CD工具(如Jenkins或GitHub Actions)中,配置定时任务或触发条件,实现自动化测试流程。
通过以上步骤可完成一个完整的Web表单自动化测试流程,涵盖从环境搭建到持续集成的关键环节。实际应用中需根据具体表单结构调整定位策略和数据参数。

473

被折叠的 条评论
为什么被折叠?



