【问题标题】:Null pointer exception TestNG空指针异常TestNG
【发布时间】:2015-09-03 16:40:44
【问题描述】:

我有一个主页。我正在尝试使用测试注释在 TestNG 中测试页面的标题。我得到了 testTitle() 的 NullPointerException。网址正在打开。

public class HomePage {

    WebDriver driver;

    public HomePage(WebDriver driver){
        this.driver= driver;
    }
}

public class HomePageTest {
    WebDriver driver;

    @BeforeMethod
    public void openBrowser(){
        WebDriver driver = new FirefoxDriver();
        driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        driver.get("URL to open");
    }

    @Test
    public void testTitle(){
        HomePage page = new HomePage(driver);
        Assert.assertEquals("actualTitle", driver.getTitle());
    }
}

【问题讨论】:

  • 您只需要从 Webdriver 的 @Beforemethod 中删除重新声明。其余一切都很好 - 无需更改。
  • @niharika_neo,明白了..工作!谢谢!!

标签: selenium-webdriver testng


【解决方案1】:

WebDriver 实例设为公开,无需在openBrowser() 方法中再次创建它的引用。使用以下代码:

public class HomePageTest {
    public WebDriver driver; //driver instance is public

    @BeforeMethod
    public void openBrowser(){
        driver = new FirefoxDriver();
        driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        driver.get("URL to open");
    }

    @Test
    public void testTitle(){
        HomePage page = new HomePage(driver);
        Assert.assertEquals("actualTitle", driver.getTitle());
    }
}

【讨论】:

  • @TDMH,对不起,我是 Stackoverflow 的新手..所以不知道接受答案。现在我想通了:-) 感谢您的及时回答!
  • 半相关,但是……我认为在每个 beforeMethod() 中实例化 webDriver 并不是一个好主意。我至少会做 beforeClass() 甚至 beforeSuite()
【解决方案2】:

将驱动程序设置为类中的字段,这样它将在 openBrowser 中启动。

【讨论】:

    猜你喜欢
    • 2019-12-09
    • 1970-01-01
    • 2015-11-11
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    相关资源
    最近更新 更多