您好我想点击一个使用PageFactory定义位置的元素。但它显示的是NullPointerException。
定位器类:
@FindBy(xpath = "//*[@content-desc = 'Navigate up']")
public By backButton;
PageObject类:
public AskPage()
{
PageFactory.initElements(driver, AskLocator.class);
}
public void backButtonClick()
{
if(backButtondisplayed())
commonactions.clickElement(driver, askLocator.backButton);
}
我做错了吗?
注意:我没有添加课程。我刚刚在页面工厂类中为backbutton添加了click方法和定位器。我已经尝试将返回类型更改为WebElemment,它工作正常。现在我想知道我可以从工厂类发送“By”对象吗?
答案 0 :(得分:1)
在您的代码中:
您正在初始化'this'类,这意味着您已初步询问AskPage.class。
PageFactory.initElements(driver, this);
但是没有必要初始化'AskPage',因为您没有找到任何网页元素。
所以解决方案是:
PageFactory.initElements(driver, askLocator.class:);
现在它将为你带来魔力。
在askLocator.class中将web元素设为静态,或者创建对象并访问web元素。