news 2026/9/3 1:38:23

Eclipse+maven+selenium自动化测试用例入门

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Eclipse+maven+selenium自动化测试用例入门

相关的开发环境搭建参考以下文章:

Eclipse+maven+selenium自动化测试开发环境搭建

确认环境搭建成功后,在src/test/java目录下,defaut package右键新建class,命名为:GoogleTest,相关代码如下:

import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; import io.github.bonigarcia.wdm.WebDriverManager; import java.time.Duration; public class GoogleTest { WebDriver driver; @BeforeEach void setup() { WebDriverManager.chromedriver().setup(); driver = new ChromeDriver(); } @Test void googleSearchTest() { driver.get("https://www.google.com"); //element search driver.findElement(By.name("q")).sendKeys("Selenium WebDriver"); driver.findElement(By.name("q")).submit(); //Explicit Wait WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); wait.until(ExpectedConditions.titleContains("Selenium WebDriver")); //assert assertTrue(driver.getTitle().contains("Selenium")); } @AfterEach void tearDown() { driver.quit(); } }

@BeforeEach中的setup方法初始化webdriver,这两行代码必不可少,否则可能出现意想不到的错误。

WebDriverManager.chromedriver().setup();

driver = new ChromeDriver();

@Test中开始真正的测试了。

driver.get("https://www.google.com"); //打开google主页

driver.findElement(By.name("q")).sendKeys("Selenium WebDriver"); //找到搜索框,并输入Selenium WebDriver

driver.findElement(By.name("q")).submit(); //相当于回车执行搜索

WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); //设置显式等待,等待时间为10秒,当然3秒、5秒也可以。

wait.until(ExpectedConditions.titleContains("Selenium WebDriver")); //在10秒内等待,直到页面出现期待结果,包含Selenium WebDriver的信息。

assertTrue(driver.getTitle().contains("Selenium")); //断言设置结果为:网页title包含Selenium,测试通过。

@AfterEach中设置销毁driver,释放资源。更加严谨的逻辑是先判断driver是否还存在,如果存在执行driver.quit(); 这里不加赘述,自行研究。

void tearDown() {

driver.quit();

}

以上代码没有语法问题后,在GoogleTest.java点击右键,run as—>junit test

可以看到执行成功。到这里自动化测试算是入门了一条腿了。

到这里,我们可以发现,如果每个测试class都加上@BeforeEach,@AfterEach,并且Test中元素查找、页面等待都包含在内的话,代码显得臃肿,且维护复杂。如果将@BeforeEach @AfterEach等提取出去,并且把测试相关的页面、元素查找、用例成功的要素等单独封装到其他的类中,测试类就只关注测试步骤,这样测试就变得容易维护了。这里也就是常说的Page Obejcet Model页面对象模型。接下来会继续发布POM相关的实践过程。

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

Android基础-Activity属性 android:configChanges

<activityandroid:name".activity.MoreFuncActivity"android:exported"false"android:configChanges"keyboardHidden|orientation|screenSize|navigation|keyboard" /> 项目清单文件中看到 android:configChanges"keyboardHidden|…

作者头像 李华
网站建设 2026/9/2 15:06:31

Kotaemon支持CI/CD持续集成部署吗?DevOps整合

Kotaemon支持CI/CD持续集成部署吗&#xff1f;DevOps整合 在企业级AI系统日益复杂的今天&#xff0c;一个常见的挑战浮出水面&#xff1a;如何将大语言模型&#xff08;LLM&#xff09;驱动的智能体从实验室原型平稳地推向生产环境&#xff1f;许多团队经历过这样的窘境——本地…

作者头像 李华
网站建设 2026/9/2 2:44:06

KotaemonA/B测试方案设计:实验组划分指导

Kotaemon A/B测试方案设计&#xff1a;实验组划分实践指南 在智能客服和企业级知识管理场景中&#xff0c;一个问答系统的准确性不再仅仅取决于大模型的能力&#xff0c;更依赖于背后整套检索增强生成&#xff08;RAG&#xff09;流程的精细调优。我们常常会遇到这样的问题&…

作者头像 李华
网站建设 2026/9/2 19:15:04

基于Kotaemon的会议室预订智能助手开发

基于Kotaemon的会议室预订智能助手开发 在现代企业办公环境中&#xff0c;一个看似简单的任务——“订个会议室”——却常常演变成一场耗时的协调战。员工需要打开日历系统、手动筛选空闲时段、确认设备配置、检查权限、拉群通知同事……稍有疏忽&#xff0c;就可能出现时间冲…

作者头像 李华
网站建设 2026/9/3 1:22:43

Kotaemon助力企业构建私有化知识库问答系统

Kotaemon助力企业构建私有化知识库问答系统 在当今企业数字化转型的浪潮中&#xff0c;知识不再只是静态文档的堆砌&#xff0c;而是驱动效率与决策的核心资产。然而&#xff0c;当员工面对分布在Confluence、SharePoint、本地服务器甚至个人笔记中的海量资料时&#xff0c;“我…

作者头像 李华
网站建设 2026/9/2 5:51:15

Kotaemon微服务架构拆分建议:适应大规模部署

Kotaemon微服务架构拆分建议&#xff1a;适应大规模部署 在企业智能对话系统逐渐成为客服、知识管理与自动化办公核心组件的今天&#xff0c;一个关键问题摆在了架构师面前&#xff1a;如何让原本为本地开发设计的AI框架&#xff0c;顺利演进为支撑高并发、可扩展、易维护的企业…

作者头像 李华