【问题标题】:Should I initiate WebDriver in BeforeClass or BeforeTest in TestNG我应该在 BeforeClass 中启动 WebDriver 还是在 TestNG 中启动 BeforeTest
【发布时间】:2018-03-10 00:28:53
【问题描述】:
我仍在学习自动化测试,并且一直在研究一些测试框架。我看到人们启动 WebDriver 有两种方法。
- 有些是在 BeforeClass 中启动它(使用 TestNG),它使驱动程序在整个类测试中保持活动状态,包括许多测试用例。
- 其他组在每个测试用例 @Test 或 @BeforeTest 中启动 WebDriver,以便他们可以为每个类拥有新的 WebDriver。
我们需要启动 WebDriver 的正确位置在哪里?谢谢。
【问题讨论】:
标签:
selenium
selenium-webdriver
testng
【解决方案1】:
没有所谓的“正确的地方”!
如果您从@BeforeClass 启动驱动程序,那么同一个浏览器将可用于该类中的每个测试 - 包括任何会话 cookie 和其他历史记录。每个测试都需要考虑上一个测试离开您的应用时所处的状态。例如:最好在@BeforeTest 中登录您的应用并在@AfterTest 中从您的应用注销。
如果您从 @BeforeTest 启动驱动程序,那么您将在每次测试时都使用干净的浏览器会话。这速度较慢(因为每次测试都会启动浏览器),但更简洁,因为您不必担心之前的测试让您的浏览器处于什么状态。