十、自动化函数+实战

Maven环境配置

1.设计测试用例

2.创建空项目

1)添加需要的依赖pom.xml

plain 复制代码
<dependencies>
<!--    截图配置-->
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.6</version>
    </dependency>
<!--    驱动配置-->
    <dependency>
      <groupId>io.github.bonigarcia</groupId>
      <artifactId>webdrivermanager</artifactId>
      <version>5.8.0</version>
    </dependency>
<!--    库函数-->
    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
      <version>4.0.0</version>
    </dependency>
</dependencies>

创建驱动对象---所有的测试用例共用一个driver对象

编写测试用例---如何划分用例?按照页面分类,每个页面是一个Java文件,页面下所有的用例统一管理

文件上传

点击文件上传的场景下会弹窗系统窗口,进行文件的选择。

selenium无法识别非web的控件,上传文件窗口为系统自带,无法识别窗口元素

但是可以使用sendkeys来上传指定路径的文件,达到的效果是一样的

WebElement ele = driver.findElement(By.cssSelector("body > div>div>input[type=file]"));

ele.sendKeys("D:\upload.html");

浏览器参数设置

1)设置无头模式

plain 复制代码
void createDriver() {
    String chromeDriverPath = "D:\\网页下载\\chromedriver-win64\\chromedriver-win64\\chromedriver.exe"; // 替换为你的 chromedriver 路径
    System.setProperty("webdriver.chrome.driver", chromeDriverPath);
    // 增加浏览器配置:创建驱动对象要强制指定允许访问所有的链接

    // 配置 Chrome 浏览器选项
    ChromeOptions options = new ChromeOptions();
    options.addArguments("--remote-allow-origins=*"); // 解决某些版本的兼容性问题

    // 初始化 ChromeDriver
    driver = new ChromeDriver(options);

}

2)设置浏览器加载策略

相关推荐
舒一笑1 天前
程序员效率神器:一文掌握 tmux(服务器开发必备工具)
运维·后端·程序员
NineData1 天前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
用户962377954482 天前
VulnHub DC-1 靶机渗透测试笔记
笔记·测试
数据组小组2 天前
免费数据库管理工具深度横评:NineData 社区版、Bytebase 社区版、Archery,2026 年开发者该选哪个?
数据库·测试·数据库管理工具·数据复制·迁移工具·ninedata社区版·naivicat平替
梦想很大很大2 天前
拒绝“盲猜式”调优:在 Go Gin 项目中落地 OpenTelemetry 链路追踪
运维·后端·go
Sinclair2 天前
内网服务器离线安装 Nginx+PHP+MySQL 的方法
运维
叶落阁主2 天前
Tailscale 完全指南:从入门到私有 DERP 部署
运维·安全·远程工作
Apifox3 天前
【测试套件】当用户说“我只想跑 P0 用例”时,我们到底在说什么
单元测试·测试·ab测试
甲鱼9293 天前
MySQL 实战手记:日志管理与主从复制搭建全指南
运维
阁老6 天前
pytest测试框架:如何确保登录模块先执行并共享登录状态
测试