news 2026/4/23 16:52:26

如何使用Selenium实现自动化测试?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何使用Selenium实现自动化测试?

🍅点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

本篇咱们来谈谈Selenium自动化脚本是如何工作的,以及如何实现一个简单的自动化示例;

一、关于selenium

1.1、为什么选择它作为web自动化的测试工具?

选择Selenium作为web自动化测试工具的原因(面试也许会问):

1. 开源免费;

2. 支持多浏览器,如Chrome、 Firefox、IE浏览器等;

3. 支持多系统,如Linux、Windows、MacOS;

4. 支持多语言,如下:

5. Selenium包提供了很多可供测试使用的API;

1.2、Selenium操作浏览器的原理

首先来了解一下不可不知的“驱动”:

什么是驱动?例如,计算机有了驱动,才可以使计算机工作起来;人工测试的情况下,我们用鼠标打开浏览器,那么驱动就是人力;对于自动化来说,代码不能直接打开浏览器,而是需要借助驱动才能打开浏览器;

那么,来看一下Selenium编写的自动化脚本是如何打开浏览器的:

从上图可以看的出来,驱动要接受 selenium 脚本发送来的 http 请求,并解析请求,实际上就可以把这个驱动看成一个服务器,例如谷歌chromedriver,如下图:

注意:使用的浏览器驱动版本一定要和浏览器版本保持差不多一致;

二、实现一个简单的自动化

2.1、使用自动化操作浏览器

实现一个简单的自动化主要包含以下几个步骤

  1. 创建驱动示例,创建会话(打开浏览器);
  2. 访问网站;
  3. 查找元素;
  4. 操作元素;
  5. 结束会话;

例如:通过谷歌浏览器进入

注意:需要先导入selenium相关依赖,并且将浏览器驱动下载完成,放入java/jdk/bin目录下;

<dependencies> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.0.0</version> </dependency> </dependencies>

由于自动化代码执行速度很快,所以可以在每执行一步用线程休眠停留一下(如果想观看到效果)

import org.openqa.selenium.By; import org.openqa.selenium.chrome.ChromeDriver; public class FirstAutoTest { //百度网址搜索关键词“不孕不育” public void buyunbuyuTest() throws InterruptedException { //创建驱动示例,创建会话(打开浏览器) ChromeDriver driver = new ChromeDriver(); Thread.sleep(3000); //在浏览器里输入百度网址,访问百度首页 driver.get("https://www.baidu.com"); Thread.sleep(3000); //找到百度首页输入框元素,并输入关键词“不孕不育” driver.findElement(By.cssSelector("#kw")).sendKeys("不孕不育"); Thread.sleep(3000); //找到百度首页"百度一下"按钮,并点击 driver.findElement(By.cssSelector("#su")).click(); Thread.sleep(3000); //结束会话,关闭浏览器 driver.quit(); } }

2.2、Selenium常用的API

2.2.1、查找页面元素

使用方法:

indElement();

参数:

By类(通过什么方式来定位元素);

By类中最常用的两个定位方法:

1. cssSelector(),它可以通过css选择器来定位元素;

2. className(),它可以通过xpath来定位元素;

xpath如何使用呢?

最常用的是用层级的方式来表示:/子级 //跳级;(@为属性)

例如:谷歌浏览器中的Google标志

这样你就可以拿到这个标签的xpath://*[@id="logo"] 这便是跳级(前面的路径都不显示,直接表示属性id=“logo”这个标签)

或者是xpath://*[@id="csdn-copyright-footer"]/ul[1]/li[2]/a 这便是一个跳级加子集的方式;

值得注意的是:我们不要一个一个去推这个子集表示的方式,可以直接按照上图的方式进行拷贝xpath路径,配合着className()方法使用即可,但是有时候赋值selector或者xpath元素不一定是唯一的,需要我们进行手动修改到唯一,这就是为什么我们要对xpath的语法要有一定了解的原因;你学废了吗?

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 12:27:38

IDM完整使用指南:三步解锁软件功能

IDM完整使用指南&#xff1a;三步解锁软件功能 【免费下载链接】IDM-Activation-Script-ZH IDM激活脚本汉化版 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script-ZH 还在为Internet Download Manager的30天试用限制而困扰&#xff1f;想要彻底摆脱下…

作者头像 李华
网站建设 2026/4/22 2:43:46

GB/T 7714-2015 CSL样式库:学术写作的智能解决方案

在学术写作过程中&#xff0c;参考文献格式的规范化处理往往成为研究者面临的一大挑战。GB/T 7714-2015 CSL样式库应运而生&#xff0c;为学者提供了一套完整的参考文献格式自动化工具&#xff0c;有效解决了格式调整的繁琐问题。 【免费下载链接】Chinese-STD-GB-T-7714-relat…

作者头像 李华
网站建设 2026/4/21 21:23:47

AndroidFaker隐私保护全攻略:打造无痕设备环境的终极方案

在当今数字时代&#xff0c;Android设备隐私保护已成为每个用户的迫切需求。AndroidFaker作为一款基于Xposed框架的隐私保护模块&#xff0c;能够有效伪造关键设备标识符&#xff0c;让你的设备信息彻底"隐身"&#xff0c;告别设备追踪困扰。 【免费下载链接】Androi…

作者头像 李华
网站建设 2026/4/20 23:48:49

在接口测试中怎么处理开发是否提供接口文档的总结

最近做了好几个项目的接口自动化&#xff0c;接口测试很重要的参考依据就是接口文档&#xff0c;在自动化实施过程中碰到的接口文档也是千差万别&#xff0c;有的项目没有接口文档&#xff0c;有的项目有接口文档&#xff0c;有接口文档的项目&#xff0c;有的很完善&#xff0…

作者头像 李华
网站建设 2026/4/20 18:24:02

【Dify 架构优化必修课】:API格式统一的7个致命误区与破解之道

第一章&#xff1a;Dify API格式统一的核心价值 在构建现代化AI应用时&#xff0c;API接口的标准化与一致性直接影响开发效率、系统可维护性以及跨团队协作的顺畅程度。Dify通过统一API格式&#xff0c;为开发者提供了一套清晰、可预测的交互规范&#xff0c;显著降低了集成复杂…

作者头像 李华
网站建设 2026/4/19 20:09:41

MaaYuan:终极免费游戏自动化智能助手完整指南

MaaYuan&#xff1a;终极免费游戏自动化智能助手完整指南 【免费下载链接】MaaYuan 代号鸢 / 如鸢 一键长草小助手 项目地址: https://gitcode.com/gh_mirrors/ma/MaaYuan 你是否也曾为每天重复登录游戏、机械点击完成任务而感到疲惫&#xff1f;现代手游的日常任务系统…

作者头像 李华