Selenium:关闭按钮不会抛出错误但弹出窗口仍然无法关闭

时间:2017-04-24 16:54:20

标签: java selenium testing selenium-webdriver automated-tests

我有一个Selenium测试,我想关闭一个创建新文件夹弹出对话框   我经常点击对话框的关闭按钮,它工作正常一段时间 然后,昨天,它停止工作,现在盒子不再关闭。

起初我认为按钮不可见或不可点击或类似的东西,但这似乎不是问题。
我检查了所有这些。因此,实际的点击操作没有错误,但点击仍然不起作用,因为对话框之后仍保持打开状态。

这是我目前使用的代码:

WebElement button = Utils.DRIVER.findElement(By.xpath("//input[@class='lotusFormButton' and @value='Cancel' and not(@disabled)]"));
wait.until(ExpectedConditions.elementToBeClickable(button));
new Actions(Utils.DRIVER).moveToElement(button).click().perform();
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.className("dijitDialogUnderlay")));

我不知道我做错了什么,我尝试了正常点击。

button.click();

我也尝试了javascript点击

JavascriptExecutor executor = (JavascriptExecutor) Utils.DRIVER;
executor.executeScript("arguments[0].click();", button);

但没有一个有效。任何帮助将不胜感激。

我收到的错误消息如下:

org.openqa.selenium.TimeoutException: Timed out after 20 seconds waiting for element to no longer be visible: By.className: dijitDialogUnderlay

可点击按钮的实际情况已通过,但对话框底层的超时时间消失,因为对话框未关闭。

3 个答案:

答案 0 :(得分:0)

尝试:

new Actions(Utils.DRIVER).moveToElement(button,10,10).doubleClick()。perform();

答案 1 :(得分:0)

提供测试失败的日志详细信息。 如果您正在使用弹出窗口,那么您不应该使用click。您必须使用SwitvhTo()属性。 例如,

driver.switchTo().alert().accept();//For accept
driver.switchTo().alert().dismiss();//For close

答案 2 :(得分:0)

好吧,尽管我实际上已经测试了按钮是否可以预先点击,但它似乎仍然是一个竞争条件问题。在实际点击按钮之前使用简单的Thread.sleep(10000),它会毫无问题地运行。

这并不完全回答为什么ExpectedConditions.elementToBeClickable(button)说实际上按钮是可点击的,但至少我现在知道实际点击按钮不是问题。