【自动化测试】Selenium Python UI自动化测试实用教程

发布于:2025-07-24 ⋅ 阅读:(76) ⋅ 点赞:(0)

一、引言:Selenium与UI自动化测试基础

1.1 Selenium简介

Selenium是一个开源的Web应用自动化测试框架,支持多浏览器(Chrome、Firefox、Edge等)和多编程语言(Python、Java、JavaScript等),核心组件包括:

  • WebDriver:通过浏览器原生API控制浏览器,模拟用户操作(点击、输入等),无侵入性。
  • IDE:浏览器插件,支持录制/回放操作,可导出测试脚本(适合新手快速上手)。
  • Grid:分布式测试工具,支持多节点并行执行测试用例,提升效率。

1.2 2025年Selenium核心新特性

Selenium 4.11+版本(2025年主流版本)带来多项关键更新,显著降低新手使用门槛:

  • Selenium Manager自动驱动管理:无需手动下载/配置ChromeDriver,框架自动匹配浏览器版本并下载驱动,解决长期困扰的“驱动版本不兼容”问题。
  • Chrome For Testing(CfT)支持:谷歌推出的专用测试浏览器,禁用自动更新,确保测试环境一致性,可通过npx @puppeteer/browsers install chrome@stable安装。
  • PageLoadStrategy枚举类:4.17版本新增,替代字符串参数,支持IDE自动补全,避免拼写错误(如options.page_load_strategy = PageLoadStrategy.NONE)。
  • 相对定位器增强:支持通过元素相对位置定位(above/below/to_left_of/to_right_of/near),复杂页面定位更灵活。
  • 启动速度优化:浏览器驱动启动逻辑调整,平均节省0.5秒启动时间,通过动态重试间隔(首次0.01秒,逐步增加至0.5秒)提升效率。

二、环境搭建:从0到1配置开发环境

2.1 Python环境准备

  1. 安装Python
    推荐Python 3.8+(兼容Selenium 4.x),从Python官网下载对应系统版本,安装时勾选“Add Python to PATH”。
    验证安装:python --version(Windows)或python3 --version(macOS/Linux)。

  2. 虚拟环境配置(推荐)
    避免依赖冲突,使用venv创建独立环境:

    # 创建虚拟环境
    python -m venv selenium_env
    # 激活环境(Windows)
    selenium_env\Scripts\activate
    # 激活环境(macOS/Linux)
    source selenium_env/bin/activate

2.2 Selenium安装

通过pip安装最新版Selenium(2025年推荐4.17.0+):

# 基础安装
pip install selenium
# 国内镜像源加速(推荐)
pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple

验证安装:pip show selenium,输出版本信息即成功。

2.3 浏览器与驱动配置

2.3.1 Chrome浏览器(推荐)
  1. 安装Chrome For Testing
    专为测试设计,禁用自动更新,通过npm安装:

    # 安装稳定版Chrome For Testing
    npx @puppeteer/browsers install chrome@stable
    # 安装指定版本(如116.0.5793.0)
    npx @puppeteer/browsers install chrome@116.0.5793.0
  2. 驱动自动管理
    Selenium 4.11+内置Selenium Manager,无需手动下载ChromeDriver:

    from selenium import webdriver
    # 自动管理驱动,无需executable_path参数
    driver = webdriver.Chrome()
    driver.get("https://www.baidu.com")
    driver.quit()
2.3.2 其他浏览器配置
  • Firefox:需安装GeckoDriver,下载后放入系统PATH或通过Service指定路径:
    from selenium.webdriver.firefox.service import Service
    driver = webdriver.Firefox(service=Service("./geckodriver"))
  • Edge:基于Chromium内核,配置方式同Chrome,使用webdriver.Edge()

三、核心API:元素定位与操作实战

3.1 元素定位策略(8大方法)

Selenium提供多种定位方式,按优先级排序如下:

定位方式 语法示例 适用场景
ID driver.find_element(By.ID, "kw") 元素有唯一ID(如百度搜索框)
NAME driver.find_element(By.NAME, "wd")

网站公告

今日签到

点亮在社区的每一天
去签到