【问题标题】:why selenium.isConfirmationPresent() returns true after using chooseCancelOnNextConfirmation为什么 selenium.isConfirmationPresent() 在使用 chooseCancelOnNextConfirmation 后返回 true
【发布时间】:2011-01-17 13:45:37
【问题描述】:

我有如下代码

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

【问题讨论】:

    标签: java selenium


    【解决方案1】:

    这是预期的行为。 chooseCancelOnNextConfirmation() 规定 getConfirmation() 的行为。调用getConfirmation() 有效地“消耗”了确认弹出窗口。在继续测试之前,您必须使用 getConfirmationverifyConfirmation,因为如果您不使用 getConfirmation 调用处理弹出窗口,任何其他 Selenium 命令都会失败。

    默认情况下,确认功能将 返回 true,效果与 手动单击确定。这可以是 因事先执行而改变 选择CancelOnNextConfirmation 命令。如果确认是 生成但您没有获取/验证 它,下一个 Selenium 动作将 失败。

    所以你的代码可能是:

    selenium.chooseCancelOnNextConfirmation();
    
    selenium.click("deleteRequest")
    
    selenium.getConfirmation();
    

    【讨论】:

      猜你喜欢
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      相关资源
      最近更新 更多