我有一个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
可点击按钮的实际情况已通过,但对话框底层的超时时间消失,因为对话框未关闭。
答案 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)
说实际上按钮是可点击的,但至少我现在知道实际点击按钮不是问题。