问题描述
我尝试在Serenity-bdd中编写Click()函数,作为在框架中使用的通用方法。但是,我将其存储为WebElementFacade的网页元素可以在Click()函数中调用,如下所示。它没有标识元素并单击。它会以
**"NullpointerException"**
的形式抛出错误。请帮助我哪里出错了。
注意:如果我将Webelement用作目标类型,则工作正常。但是我需要元素作为WebElementFacade函数来检查更多条件。请帮助解决
WebElementFacade ->存储在如下所示的其他(.java)中,
public class ParabankForm extends PageObject {
public WebElementFacade REGISTER_BUTTON = $(By.xpath("//*[text()='Register']"));
}
功能
:/*
* Function Name : Click()
* Author: Koushick Sudharsanam
* Purpose: The Actor is used to click on the Webelement Target in Webpage
*
*/
public void Click(Actor act,WebElementFacade target) {
if(target.isDisplayed()||target.isClickable())
{
act.attemptsTo(Click.on(target));
}
else
{
act.wasAbleTo(target.waitUntilClickable());
if(target.isCurrentlyEnabled() && target.isClickable())
{
act.attemptsTo(Click.on(target));
}
}
}
所以在分步定义中,我会这样称呼,
@Then("i click on the RegisterButton")
public void i_click_on_the_register_button() {
Utiltiesfunction.GetInstance().Click(act,obj.REGISTER_BUTTON);
}
错误:
java.lang.NullPointerException
at net.serenitybdd.core.pages.WebElementResolverByLocator.resolveForDriver(WebElementResolverByLocator.java:25)
at net.serenitybdd.core.pages.WebElementFacadeImpl.getResolvedELement(WebElementFacadeImpl.java:234)
at net.serenitybdd.core.pages.WebElementFacadeImpl.getElement(WebElementFacadeImpl.java:229)
at net.serenitybdd.core.pages.WebElementFacadeImpl.isDisplayed(WebElementFacadeImpl.java:1351)
at CucumberRunner.my.commonfunction.Utiltiesfunction.Click(Utiltiesfunction.java:37)
at CucumberRunner.my.stepdefinitions.Parabankdef.i_click_on_the_register_button(Parabankdef.java:84)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)