提问者:小点点

@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可能由于 Web 驱动程序的生命周期在此时过期而失败,但该标记也仅在使用 TestNG 运行时有效。

我建议初始化你的驱动程序,并设置属性在一个@之前标记,这样你就可以运行多个测试使用相同的驱动程序。