java - WebElementFacade 没有点击网页中的元素
问题描述
我尝试在 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)
解决方案
推荐阅读
- react-native - 反应本机博览会通知没有声音没有抬头消息
- .net - 使用 NLog 在 EventLog 中创建文件夹结构
- javascript - 异步功能中的图像源?
- python - 通用 conv 实现目前仅支持 NHWC 张量格式
- powershell - 将序列号与给定的计算机名匹配
- c# - 在 C# ASP.NET 中插入数组 html
- mongodb - 将 2 个整数连接到一个整数 MongoDB
- postgresql - 范围包含不使用元素列索引的元素过滤器
- amazon-s3 - Redshift Spectrum 比 Athena 慢很多?
- c# - WPF 绘制点与线时的不同行为