我在尝试访问从 POM 文件中引用的文本框元素时收到 NullPointerException。请帮助我解决此错误



我正在尝试使用页面对象模型框架学习Selenium的框架结构。即使我传递了 Web 驱动程序实例,在尝试访问从 POM 文件引用的文本框元素时,我也会收到 NullPointerException。 我正在尝试启动一个页面并在文本框中输入文本。testBase.java for launching Chrome browser

package TestBase;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class testBase {
public static WebDriver driver;
public static WebDriver initDriver()
{
System.setProperty("webdriver.chrome.driver", "C:/Users/edksuresh/Downloads/chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().maximize();
return driver;
}
}

"对象存储库文件">

package pom;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
public class POM_LoginPage {
public WebDriver driver;
@FindBy(xpath="//input[@id='email']")
public WebElement uid;
public POM_LoginPage(WebDriver wd)
{
this.driver = wd;
}
}

注册.java

package generalComponent;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import TestBase.testBase;
import pom.POM_LoginPage;
public class Registration {
WebDriver driver;
String url;
POM_LoginPage pomLogin;
public Registration(WebDriver wd)
{
this.driver = wd;
}
public void launchPage()
{
driver = testBase.initDriver();
pomLogin = new POM_LoginPage(driver);
url = "http://demo.automationtesting.in/";
driver.get(url);
pomLogin.uid.sendKeys("sss@gg.com");
}
}

NullPointerException 在第pomLogin.uid.sendKeys("sss@gm.com")行抛出。

请使用以下代码更新对象存储库文件。问题是你忘了调用页面工厂的initElements方法。

public POM_LoginPage(WebDriver wd)
{
this.driver = wd;
PageFactory.initElements(driver,this)
}

相关内容

最新更新