首页 > 解决方案 > 如何在使用 selenium(POM,而不是 pagefactory)定位元素时修复 nullpointerexception?

问题描述

当我使用 POM 类时,得到 Nullpointer 异常。但是,如果我直接在课堂上使用 driver.findelement,它就可以正常工作。你能倾诉你的想法来解决这个问题吗?

@Test
public void testFlow() throws InterruptedException {
    UtilityClass.setUpPath();
    WebDriver driver = new ChromeDriver();

    try{
        driver.navigate().to("http://demo.guru99.com/payment-gateway/check_credit_balance.php");
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.findElement(By.id("card_nmuber")).sendKeys("1234567891234567");
        System.out.println(driver.findElement(By.id("card_nmuber")).getAttribute("value"));
        HomePage hp = new HomePage(driver);
        hp.clickSubmit();
    }
    finally{
        driver.quit();
    }
}
public class HomePage {
WebDriver driver;

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

@FindBy(name = "submit")
private WebElement signIn ;

public void clickSubmit() {
    signIn.click(); }} }}

错误:java.lang.NullPointerException

标签: seleniumselenium-webdriver

解决方案


您的页面对象字段未与WebElement. 您需要添加一个构造函数来调用

PageFactory.initElements(driver, this)

您的构造函数当然必须WebDriver作为参数


推荐阅读