selenium - 如何在使用 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
解决方案
您的页面对象字段未与WebElement
. 您需要添加一个构造函数来调用
PageFactory.initElements(driver, this)
您的构造函数当然必须WebDriver
作为参数
推荐阅读
- javascript - 为什么在对焦前模糊火焰以及解决方案是什么
- python - 向神经元添加特征
- c# - 将数据库代码移动到单独的程序集时将连接字符串放在哪里
- java - java - 如何从Java中的电报机器人获取用户的输入?
- go - Golang 错误 - 未声明的名称:xxx 编译器
- python - Python烧瓶API POST请求-键后的JSON数据
- active-directory - 通过 Active Directory 登录时使用的用户名
- javascript - 如何声明一个始终为空的 Typescript 数组?
- git - git clone 获取在特定标签后添加/修改的文件
- c# - 尝试构建具有多个 where 条件的 linq 查询