> 技术文档 > 掌握 Selenium 与 Python:从浏览器操控到自动化测试的全攻略

掌握 Selenium 与 Python:从浏览器操控到自动化测试的全攻略


文章目录

  • 安装Selenium库
  • 下载浏览器驱动(以Chrome为例)
  • 从https://chromedriver.chromium.org/downloads下载对应版本
  • 驱动需与浏览器版本匹配,例如Chrome 120对应chromedriver 120.0.5883.72
  • 配置无头模式(可选,不显示浏览器界面)
  • 启动浏览器
  • 访问网页
  • 定位搜索框并输入内容
  • 截图保存结果
  • 关闭浏览器
  • 等待购物车图标加载完成(最多等待10秒)
  • test_shopping.py
  • 切换到iframe
  • 在iframe中操作元素
  • 切换回默认上下文
  • 配置Chrome选项
  • 隐藏WebDriver特征
  • 配置iOS设备测试
  • 连接到Selenium Grid
  • 使用AI模型识别\"立即购买\"按钮
  • 用户输入:\"请生成测试登录功能的代码,包括正确密码和错误密码场景\"
  • 加载历史测试数据
  • 预测新测试用例的缺陷概率

掌握 Selenium 与 Python:从浏览器操控到自动化测试的全攻略
一、为什么自动化测试成为开发必备技能?
当你需要反复测试一个电商网站的购物流程时,手动点击 “加入购物车 - 结算 - 支付” 可能需要数十分钟;而自动化测试能让程序在 30 秒内完成全流程验证 —— 这就是 Selenium+Python 组合的魔力。据 Stack Overflow 2024 报告显示,68% 的开发者使用自动化测试工具,其中 Selenium 以 42% 的占有率位居榜首,成为 Web 应用测试的 “瑞士军刀”。
核心优势解析:
跨浏览器兼容性:一次编写可在 Chrome、Firefox、Edge 等主流浏览器运行
语言灵活性:支持 Python/Java/JavaScript 等多语言,Python 语法简洁易上手
生态丰富性:集成 Pytest、Allure 等框架,轻松生成可视化测试报告
二、环境搭建:10 分钟启动自动化测试之旅

  1. 三行代码搭建基础环境

安装Selenium库

pip install selenium

下载浏览器驱动(以Chrome为例)

从https://chromedriver.chromium.org/downloads下载对应版本

驱动需与浏览器版本匹配,例如Chrome 120对应chromedriver 120.0.5883.72

  1. 首个自动化脚本实战
    from selenium import webdriver
    from selenium.webdriver.chrome.service import Service
    from selenium.webdriver.common.by import By
    from selenium.webdriver.chrome.options import Options

配置无头模式(可选,不显示浏览器界面)

chrome_options = Options()
chrome_options.add_argument(“–headless”)

启动浏览器

service = Service(executable_path=“./chromedriver”)
driver = webdriver.Chrome(service=service, options=chrome_options)

访问网页

driver.get(“https://www.baidu.com”)

定位搜索框并输入内容

search_input = driver.find_element(By.ID, “kw”)
search_input.send_keys(“Selenium自动化测试”)
search_input.submit()

截图保存结果

driver.save_screenshot(“search_result.png”)

关闭浏览器

driver.quit()

执行这段代码后,你会发现当前目录生成了 “search_result.png”—— 这就是自动化测试的第一个成果:程序模拟人类操作完成了百度搜索并截图。
三、元素定位:自动化测试的 “眼睛” 与 “手”

  1. 八大定位策略详解
    定位方法
    示例代码
    适用场景
    ID 定位
    driver.find_element(By.ID, “login-btn”)
    元素有唯一 I