【自动化测试】介绍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自动化测试执行的逻辑😽

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

相关推荐
老华带你飞3 小时前
旅游|基于Java旅游信息推荐系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·后端·旅游
老华带你飞4 小时前
医院挂号|基于Java医院挂号管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot
悟空码字4 小时前
SpringBoot实现消息推送:让服务器学会“主动搭讪”
java·spring boot·后端
+VX:Fegn08954 小时前
人力资源管理|基于springboot + vue人力资源管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
即随本心0.o4 小时前
SSE服务搭建
java·spring boot
灰什么鱼4 小时前
OkHttp + Retrofit2 调用第三方接口完整教程(以nomad为例)
java·spring boot·okhttp·retrofit
一 乐5 小时前
海鲜商城购物|基于SprinBoot+vue的海鲜商城系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot
better_liang5 小时前
每日Java面试场景题知识点之-Spring Boot微服务配置管理
java·spring boot·微服务·面试题·配置管理
凛冬君主5 小时前
探索 Spring 的基础依赖与 Spring Boot 依赖
java·spring boot·spring