元素有时是可点击的

时间:2018-05-24 13:16:12

标签: java selenium testing junit cucumber

我正在为标准表格编写测试。我有一个文本框,日期,选择..各种输入,最后是一个重置和过滤按钮。在“日期”字段中,默认情况下始终存在日期。我需要按“重置”按钮才能清除所有字段,然后按“过滤”按钮。这样,显示所有“必填字段”消息,以便我可以测试它们。我在按下Reset按钮时遇到了一些麻烦,所以我尝试了这段代码:

@When("I push Reset Button$")
public void pushReset(){    
wait.until(ExpectedConditions.elementToBeClickable(formOne.resetButton)).click();

以下是我找到元素的方法:

@FindBy(how = How.NAME, using = "reset_rules")
public WebElement resetButton;

用外部HTML找到它

<input name="reset_rules" value="Reset" class="button critical reset none" 
style="margin-right: 10px;" type="reset">

所以我启动测试,有时按下Reset按钮并传递所有步骤。如果我再次启动它,则没有按下Resset按钮。然后我再次启动它,它的工作原理......由于DOM,CSS,HTML或类似的没有变化,我不知道发生了什么

有任何帮助吗?提前致谢

1 个答案:

答案 0 :(得分:0)

要考虑的几件事情。

打开网络浏览器并检查// * [@ name =&#39; reset_rules&#39;]仅返回1个匹配。

此外,大多数情况下,当某些东西以这样的片状方式运行时,在尝试执行操作之前会有一些不良的等待逻辑。在尝试单击重置按钮之前,应确保页面已完全加载。