为什么selenium.isConfirmationPresent()在使用chooseCancelOnNextConfirmation后返回true

时间:2011-01-17 13:45:38

标签: java selenium

我的代码如下

selenium.chooseCancelOnNextConfirmation()

selenium.click(“deleteRequest”); //点击按钮时会显示确认对话框

System.out.println(“确认存在”+ selenium.isConfirmationPresent());

尽管我正在使用selenium.chooseCancelOnNextConfirmation(),但请告诉我为什么 selenium.isConfirmationPresent()会返回true。

但是selenium.isConfirmationPresent()在

之后返回false

selenium.getConfirmation();

是否必须使用selenium.getConfirmation(),因为我无法进行进一步处理。它说

com.thoughtworks.selenium.SeleniumException:错误:有一个意外的确认! [您确定要删除所选的请求吗?] com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:97)         在com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:9

1 个答案:

答案 0 :(得分:2)

这是预期的行为。 chooseCancelOnNextConfirmation()指示 getConfirmation()的行为。有效地呼叫getConfirmation()“消耗”确认弹出窗口。在继续测试之前,您必须使用 getConfirmation verifyConfirmation ,因为如果您没有通过getConfirmation调用处理弹出窗口,任何其他Selenium命令都将失败。

  

默认情况下,确认功能会   返回true,具有相同的效果   手动单击确定。这可以   先前执行的更改   chooseCancelOnNextConfirmation   命令。如果确认是   生成但你没有得到/验证   它,下一个Selenium行动将会   失败。

所以你的代码可能是:

selenium.chooseCancelOnNextConfirmation();

selenium.click("deleteRequest")

selenium.getConfirmation();