news 2026/2/24 19:53:28

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/2/22 22:00:28

12、游戏内存中常见数据结构解析

游戏内存中常见数据结构解析 在游戏开发和内存分析中,了解常见的数据结构及其在内存中的存储方式是非常重要的。下面将详细介绍几种常见的数据结构,包括 std::vector 、 std::list 和 std::map ,并说明如何判断游戏数据是否存储在这些结构中。 1. 字符串相关类 在处…

作者头像 李华
网站建设 2026/2/17 17:21:09

21、游戏响应式黑客技术全解析

游戏响应式黑客技术全解析 在游戏世界里,玩家们总是追求更快的反应速度和更多的游戏信息。而响应式黑客技术,就为玩家提供了一种超越人类反应极限的可能。 1. 游戏基础机制与ESP黑客技术 游戏中,常常会根据玩家的位置每帧重新计算当前楼层值,为了防止该值在每次重绘帧时…

作者头像 李华
网站建设 2026/2/20 10:02:27

26、游戏隐藏与反检测技术全解析

游戏隐藏与反检测技术全解析 在游戏开发与游玩过程中,为了避免游戏程序被调试、检测,开发者和玩家常常需要运用各种技术手段隐藏程序的行为和特征。下面将详细介绍一些常见的反调试、反检测技术及其实现方法。 反调试技术 当检测到调试器时,可以采用多种方法混淆控制流,…

作者头像 李华
网站建设 2026/2/24 11:52:56

Kotaemon网络安全问答:CVE漏洞快速查询

Kotaemon网络安全问答:CVE漏洞快速查询 在现代企业安全运营中,面对每天新增数十个的公开漏洞(CVE),安全团队正面临前所未有的信息过载压力。一个典型的场景是:某位安全分析师刚收到一封关于“Windows提权漏…

作者头像 李华
网站建设 2026/2/22 22:05:24

Kotaemon能否自动识别问题紧急程度?

Kotaemon能否自动识别问题紧急程度? 在企业智能化转型的浪潮中,客服系统早已不再满足于“有问必答”的基础功能。越来越多的组织发现,面对成千上万的用户请求,如果不能快速区分哪些是需要立即响应的“火警级”问题,哪些…

作者头像 李华
网站建设 2026/2/24 19:13:07

复杂时序场景的突围:金仓数据库是凭借什么超越InfluxDB?

文章目录从数据写入到复杂查询的全面领跑企业级能力带来的升维优势1. 完整SQL生态事务支持,可以降低企业集成成本2. 精细化存储管理,大幅降低运维成本3. “时序”多模融合,让数据价值最大化从测试场到核心业务的硬核验证结论:从专…

作者头像 李华