@AfterTest tearDown - исключение нулевого указателя - селен
Я пытаюсь создать среду, управляемую данными. Когда я запускаю сценарий без сносов, сценарии запускаются успешно.
Я попытался реализовать teardown() и возникла исключительная ситуация нулевого указателя. Я написал сценарий, чтобы закрыть браузер в конце, но все же я получаю исключение нулевого указателя.
public class WordPressLogin {
WebDriver driver;
@Test(dataProvider="wordpressData")
public void loginToWordPress(String username,String password) throws InterruptedException
{
driver=new FirefoxDriver();
System.setProperty("webdriver.gecko.driver","C:\\Users\\naga.priyanka\\workspace\\TestNG jars\\geckodriver-v0.13.0-win64\\geckodriver.exe");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.get("http://demosite.center/wordpress/wp-login.php");
driver.findElement(By.id("user_login")).sendKeys(username);
driver.findElement(By.id("user_pass")).sendKeys(password);
driver.findElement(By.xpath(".//*[@id='wp-submit']")).click();
Thread.sleep(5000);
Assert.assertTrue(driver.getTitle().contains("Dashboard"), "User is not able to login-Invalid credentials");
System.out.println("Page title verified - user is able to login successfully");
}
@AfterTest
public void tearDown()
{
driver.quit();
}
@DataProvider(name="wordpressData")
public Object[][] passData()
{
Object[][] data=new Object[3][2];
data[0][0]="XYZ1";
data[0][1]="XYZ";
/*data[1][0]="XYZ2";
data[1][1]="XYZ";
data[2][0]="XYZ3";
data[2][1]="XYZ";*/
return data;
}
}
1 ответ
@After должен позволять вам делать то, что вы пытаетесь использовать JUnit.
@AfterTest может завершиться сбоем из-за истечения срока службы веб-драйвера в этот момент, этот тег также работает только при запуске с TestNG.
Я бы порекомендовал инициализировать ваш драйвер и настроить свойства в теге @Before, чтобы вы могли запускать несколько тестов, используя один и тот же драйвер.