【发布时间】:2018-11-30 13:46:50
【问题描述】:
我正在使用 Selenium 和页面对象模式。我有一个关于创建页面对象类的对象的问题。
哪个选项更好:
@BeforeTest
public void browser() throws IOException {
driver = initializeBrowser();
loginPage = new LoginPage(driver);
}
并像这样使用它:
@Test
public void loginToApp() throws InterruptedException {
loginPage.clickLoginButton();
Assert.assertTrue("some assertion");
}
@Test
public void loginToAppUsingLogin() throws IOException {
loginPage.sendLogin("login");
loginPage.sendPassword("password");
loginPage.clickLoginButton();
Assert.assertTrue("some assertion");
}
或者
@BeforeTest
public void browser() throws IOException {
driver = initializeBrowser();
}
@Test
public void loginToApp() throws InterruptedException {
loginPage = new LoginPage(driver);
loginPage.clickLoginButton();
Assert.assertTrue("some assertion");
}
@Test
public void loginToAppUsingLogin() throws IOException {
loginPage = new LoginPage(driver);
loginPage.sendLogin("login");
loginPage.sendPassword("password");
loginPage.clickLoginButton();
Assert.assertTrue("some assertion");
}
每个测试套件在@BeforeTest 中创建一个对象是否有任何禁忌?
【问题讨论】:
-
我会说这取决于你正在测试的东西。
LoginPage是有状态的吗? IE。您在一次测试中与它进行的交互会在另一次测试中搞砸吗?如果是我,我不会以上述任何一种的方式去做;我只是在现场声明它。private final LoginPage loginPage = new LoginPage(this.driver);.
标签: java selenium selenium-webdriver pageobjects