如何在每个@Test注解方法前后启动并关闭浏览器?
问题解决:每个@Test方法前后启动/关闭浏览器
核心结论
- 不需要新建Java文件,多个
@Test方法完全可以放在同一个测试类中实现 @BeforeTest和@AfterTest仅会在整个测试套件的启动和结束阶段各执行一次,无法满足你每个测试方法前后都运行浏览器启停逻辑的需求
正确实现方案
改用@BeforeMethod和@AfterMethod注解,这两个注解标记的方法会在每一个@Test方法执行前、后分别触发,完全匹配你的需求。
修改后的代码示例:
@BeforeMethod public void LaunchBrowser() throws IOException { // 在这里编写浏览器启动代码,注意初始化driver实例 driver = new ChromeDriver(); } @Test(priority = 1) public void Commande_Simple_Mode_Connecte() throws InterruptedException { Authentication(driver); RechercheMarque(driver, "adidas"); SaisieArticle(driver); AccesPanierSimple(driver); ValidationCommandeSimple(driver); } @Test(priority = 2) public void Commande_Simple_Etrangere_Mode_Deconnecte() throws InterruptedException { RechercheArticleMD(driver,"ocstore"); SaisieArticleEtrangerMD(driver); AccesPanierSimple(driver); AuthenticationDepuisPanierDeconnecter(driver); ValidationCommandeSimpleEtrangere(driver); } @AfterMethod public void CloseChrome() { driver.quit(); }
关键注意点
- 必须在
@BeforeMethod中重新初始化driver对象,避免多个测试方法共用同一浏览器实例导致的页面状态污染 - 保留
priority属性可以维持原有测试方法的执行顺序逻辑
内容的提问来源于stack exchange,提问作者Yan
相关产品推荐
相关产品推荐

