news 2026/6/10 16:10:00

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/6/2 21:41:56

AI元人文:技术哲学的跃迁宣言——意义行为原生

AI元人文:技术哲学的跃迁宣言——意义行为原生在人工智能深度发展的时代,我们正处于一场技术哲学的认知迷茫之中。传统技术哲学框架在AI的“价值对齐命题”前摇摆不定。工具论的“价值中立”已成幻象,批判理论的“技术异化”沦为悲观的注脚&a…

作者头像 李华
网站建设 2026/6/10 0:21:44

9、从代码到内存:通用入门指南

从代码到内存:通用入门指南 1. 代码示例与栈帧设置 先来看一段汇编代码: PUSH EBP ; put EBP (register) on the stack MOV EBP, ESP ; set EBP to value of ESP (register, top of stack) PUSH -1 ; put -1 (immediate) on the stack ADD ESP, 4 ; negat…

作者头像 李华
网站建设 2026/6/10 14:11:31

Kotaemon语音合成接口对接:TTS功能实现

Kotaemon语音合成接口对接:TTS功能实现 在智能客服、车载交互和无障碍服务日益普及的今天,用户对AI系统的期待早已不再局限于“能答对问题”——他们希望得到更自然、更具亲和力的回应。一个只会输出文字的助手,即便知识再丰富,也…

作者头像 李华
网站建设 2026/6/10 12:45:42

Kotaemon内置评估模块教你科学衡量问答质量

Kotaemon 内置评估模块:科学衡量问答质量的新范式 在智能客服、企业知识库和虚拟助手日益普及的今天,用户对 AI 回答准确性的容忍度正变得越来越低。一句看似合理却缺乏依据的回答,可能引发严重的业务误解甚至法律风险。大语言模型&#xff0…

作者头像 李华
网站建设 2026/6/9 22:21:04

9个AI写作工具,助研究生轻松搞定论文难题!

9个AI写作工具,助研究生轻松搞定论文难题! AI 工具如何成为研究生论文写作的得力助手 在学术研究日益深入的今天,研究生们常常面临论文写作的重重挑战。从选题到撰写,再到修改与降重,每一个环节都可能成为瓶颈。而随着…

作者头像 李华