【自动化测试】介绍Web自动化测试及Selenium安装

自动化测试

自动化测试包括

  1. 接口自动化测试

  2. UI自动化测试

    • Web自动化测试

    • 客户端界面自动化测试

这次来讲讲Web 自动化测试。

什么是 Web 自动化测试?

在大厂的研发流程中,自动化测试是**CI/CD(持续集成/持续部署)**不可或缺的一环。

简单来说,Web 自动化测试就是​把原本需要人工在浏览器上点击、输入、验证的操作,通过代码指令让计算机自动执行

Selenium 与 WebDriver

目前业界最主流的 Web 自动化工具就是 Selenium。虽然现在也有 Playwright 等新秀,但 Selenium 依然是基石。

Selenium 是什么?

Selenium 不是一个单一的软件,它是一个工具套件。核心组件是 ​Selenium WebDriver

  • 它提供了一套跨语言的 API(如Java, Python, C#等等...)。
  • 它通过"原生"方式与浏览器交互,就像真实用户在操作一样。

WebDriver 的工作原理

这是Selenium官方文档对WebDriver的介绍

理解了这个图,你就懂了为什么需要下载"驱动"。

它的运作流程是一个经典的"C/S 架构"(客户端/服务器):

  1. Client(你的代码): 你写的 Java 代码(发送命令,比如 driver.get("www.baidu.com"))。
  2. JSON Wire Protocol / W3C Protocol: 代码将命令封装成 JSON 格式的 HTTP 请求,发送给驱动。
  3. Server(浏览器驱动): 比如 chromedriver.exe。它接收到 HTTP 请求后,解析命令,并调用浏览器的原生接口。
  4. Browser(浏览器): 执行操作(打开网页、点击按钮),并将结果返回给驱动,驱动再返回给你的代码。

Selenium与WebDriver的关系?

Selenium 是一个工具集,而 WebDriver 是其中用于通过原生协议驱动浏览器的核心 API。现在我们常说的 Selenium,通常默认指的就是 Selenium WebDriver。

安装Selenium库

安装Selenium在Java中只需引入Maven依赖即可

java 复制代码
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>4.37.0</version>
    </dependency>
// version 2025.12.6

Selenium内置了 WebDriver 的 API,但它不包含浏览器驱动文件(exe),故需要手动下载 / 自动下载驱动

程序想打开web浏览器就需要浏览器驱动,即(WebDriver),WebDriver以本地化的方式来驱动浏览器

关于"驱动" (Drivers)

浏览器驱动(BrowserDriver)是你的代码和浏览器之间的桥梁

为什么需要驱动?

浏览器(Chrome, Firefox等)都是复杂的闭源或开源软件,出于安全考虑,不允许外部程序直接随意控制。浏览器厂商(Google, Mozilla)为了方便测试,自己开发了对外接口的"遥控器",这个遥控器就是 Driver。

常见浏览器与驱动对应表

浏览器 驱动名称 下载关键词
Google Chrome ChromeDriver chromedriver
Firefox GeckoDriver geckodriver
Microsoft Edge EdgeDriver msedgedriver

驱动版本适配管理(重点)

版本匹配原则:这是新手最容易报错的地方。

你的 Chrome 浏览器版本 必须与 ChromeDriver 版本 严格对应。例如,浏览器是 v120,驱动也必须下载 v120 版本的。否则会报错 SessionNotCreatedException。

我们可以在浏览器内查看当前浏览器版本,安装的selenium 驱动版本,可以在本地c盘用户的C:\Users\xxx.cache文件下看到selenium文件夹,里面安装着不同的内核版本

常见驱动下载方式

1. 手动下载(不建议)

(注:虽然可以有程序自动管理驱动,但了解手动匹配依然是基础)

下载驱动的位置在Selenium官方文档中有提供,地址为

https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location/#download-the-driver

不建议手动下载,因为浏览器的更新功能是默认打开的,什么时候更新是不知道的。可能今天自动化正常执行,第二天就要重新下载最新版的驱动了,且不同的浏览器就要我们手动下载不同的驱动,非常麻烦。

这也不建议手动关闭浏览器的自动更新功能,不仅测试环境与生产环境有脱节,错过了新的自动化的功能或者改进的地方,而且可能导致Selenium库与旧的浏览器版本兼容,这种头疼砍头的操作不可取。

2. 由驱动程序自动下载

(注:Selenium 4.6.0 版本开始引入了 Selenium Manager,可以自动管理驱动,但了解WebDriverManager也是非常重要的基础)

更好的做法不是禁用更新,而是采用更健壮的测试策略

需要引入WebDriverManager辅助工具库

  • 用途:它可以让你不用手动去浏览器官网找对应版本的驱动下载,它会在代码运行时自动检测浏览器版本并下载对应的驱动。

引入WebDriverManager依赖

java 复制代码
<!-- https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager -->
    <dependency>
       <groupId>io.github.bonigarcia</groupId>
        <artifactId>webdrivermanager</artifactId>
        <version>6.1.0</version>
    </dependency>
// version 2025.12.6

3. 更新Selenium库至 4.6+ 版本

适用于更加新的项目,直接 new Driver(), Selenium就能给你匹配最新的驱动版本

Selenium文档中的描述

  • 传统方案: 使用 webdrivermanager 第三方库。适合维护旧项目(Selenium 3.x 或 4.x 早期版本)

    java 复制代码
    // 传统方案
    WebDriverManager.chromedriver().setup(); // 手动呼叫后勤
    WebDriver driver = new ChromeDriver();
  • 现代方案: 直接使用 selenium-java​ (4.6+),利用内置的 Selenium Manager,实现零辅助库配置启动

    java 复制代码
    // 什么都不用配,直接 new
    // 底层会自动触发 Selenium Manager 去干活
    WebDriver driver = new ChromeDriver();

总结

我用Banana Pro生成了这一副插画,能更加形象的了解Web自动化测试执行的逻辑😽

希望看到这里对你有所帮助,让我们变得更强!

相关推荐
谁在黄金彼岸2 小时前
Spring Boot + WebFlux 全面使用指南
spring boot
希望永不加班2 小时前
SpringBoot 主启动类解释:@SpringBootApplication 到底做了什么
java·spring boot·后端·spring
智能工业品检测-奇妙智能3 小时前
国产化系统的性价比对比
人工智能·spring boot·后端·openclaw·奇妙智能
小陈的进阶之路3 小时前
Selenium元素定位
python·selenium
SmartBrain4 小时前
Spring Boot的高性能技术栈的工程实践
spring boot·后端·架构
dreamxian5 小时前
苍穹外卖day09
java·spring boot·tomcat·log4j·maven
q5431470875 小时前
VScode 开发 Springboot 程序
java·spring boot·后端
紫丁香6 小时前
Selenium自动化测试详解1
python·selenium·测试工具·ui
学习要积极6 小时前
Springboot图片验证码-EasyCaptcha
java·spring boot·后端
yuyu_03046 小时前
畜牧(牛)数字化管理系统系统概要
spring boot