testng错误中的页面对象(java.lang.NullPointerException)

时间:2018-06-11 19:11:20

标签: java selenium-webdriver

我正在尝试使用TestNG实现Page Object的概念。我创建了一个 BrowserFactory类,它具有初始化浏览器的信息。 我还创建了一个名为 LogSystemPage 的类,它包含我需要与之交互的屏幕元素的信息。

最后,我创建了一个名为 ValidateStatusTestNG 的测试类,它“调用” BrowserFactory LogSystemPage 类。

当我尝试运行名为 logarSystem 的测试方法时,Eclipse控制台显示以下错误消息:java.lang.NullPointerException。 以下是代码,错误消息和图像。

public class BrowserFactory {

static WebDriver driver;

public static WebDriver startBrowser(String url) {

    System.setProperty("webdriver.chrome.driver", "E:\\Selenium\\chromedriver.exe");
    driver = new ChromeDriver();
    driver.manage().window().maximize();
    driver.get(url);


    return driver;
}}

public class LogarSistemaPage {

private static WebDriver driver;

public WebDriver logarSistema(WebDriver driver) {

    driver.findElement(By.id("matricula_I")).sendKeys("844502");
    driver.findElement(By.id("senha_I")).sendKeys("Pw34Jdt#*");
    driver.findElement(By.id("bt_entrar")).click();

    return driver;

}}

public class ValidarStatusTestNG {

static WebDriver driver;

@BeforeClass
public void setUp() throws Exception {

    BrowserFactory b = new BrowserFactory();
    b.startBrowser("http://10.5.9.45/BKOMais_S86825EstrategiaBackOfficeClaroFixo/");

}

@Test
public void logarSistema(){

    LogarSistemaPage s = new LogarSistemaPage();
    s.logarSistema(driver);

}

@AfterClass
public static void closeBrowser() {

    //driver.quit();

}}

TestNGErro_1

TestNGErro_2

TestNGErro_3

1 个答案:

答案 0 :(得分:0)

driver = b.startBrowser(" http://10.5.9.45/BKOMais_S86825EstrategiaBackOfficeClaroFixo/") 您需要将方法返回驱动程序的返回值分配给驱动程序。

    @BeforeClass
public void setUp() throws Exception {

    BrowserFactory b = new BrowserFactory();
driver =b.startBrowser("http://10.5.9.45/BKOMais_S86825EstrategiaBackOfficeClaroFixo/");

}

@Test
public void logarSistema(){

    LogarSistemaPage s = new LogarSistemaPage();
    s.logarSistema(driver);

}

那应该做的工作。