我当前正在使用数据提供程序来输入许多不同的用户,但是当测试结束时,仍然有前一个用户登录时,如何在每次运行后重置Bowser?这是我的代码:
public class login_from_login_page extends ConditionsWebDriverFactory {
public static final int TEST_CASE_PASSED_STATUS = 1;
public static final int TEST_CASE_FAILED_STATUS = 5;
@Test(dataProviderClass = Data.DataProviders.class, dataProvider = "customer")
public void LoginActionTest (String pass, String email, String user) throws Exception{
Header header = new Header();
header.guest_select_login();
Pages.Login login = new Pages.Login();
login.LoginAction(pass, email, user);
//TestRail.addResultForTestCase("16870",TEST_CASE_PASSED_STATUS," ");
//TestRail.addResultForTestCase("16874",TEST_CASE_PASSED_STATUS," ");
//TestRail.addResultForTestCase("17199",TEST_CASE_PASSED_STATUS," ");
}
}
我有一个Webdriverfactory类,它是从我的测试类扩展而来的,但是它似乎并没有创建新的实例,当它使用新的DataProvider信息重新启动时,我始终始终会登录。
@Listeners({ScreenShotOnFailListener.class})
public class ConditionsWebDriverFactory {
@BeforeClass
public void beforeTest() {
Drivers.startBrowser(true);
Drivers.getDriver().manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
}
@AfterClass (alwaysRun = true)
public void afterTest() {
Drivers.finishBrowser();
}
}
答案 0 :(得分:1)
在执行测试之前通过初始化开始测试:
@BeforeMethod
void setupTest() {
WebDriver driver = new ChromDriver();
// method code here
}
或者使用新的驱动程序实例初始化页面对象:
Pages.Login login = new Pages.Login(new ChromDriver());
另一种选择:
@Test
void seleniumTest() {
// Test code here
login.getDriver().manage().deleteAllCookies();
login.getDriver().navigate.refresh();
}
答案 1 :(得分:0)
如果使用testng,则可以在方法之后添加:
@AfterMethod
void deleteCoockies() {
Drivers.getDriver().manage().deleteAllCookies();
Drivers.getDriver().get ("homePageUrl");
}