我正在尝试使用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();
}}
答案 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);
}
那应该做的工作。