【问题标题】:Selenium IDE - There was an unexpected Confirmation!Selenium IDE - 有一个意外的确认!
【发布时间】:2011-01-04 23:55:15
【问题描述】:

我有一个显示 Javascript 确认弹出窗口的按钮。这是我的测试用例的一部分:

点击并等待 按钮标识 验证TextPresent 对象已被删除

它按预期工作:在弹出窗口上自动单击“确定”,verifyTextPresent 返回 true。不过,我在日志中得到了[error] There was an unexpected Confirmation! 并且测试用例失败了。

有什么建议吗?

【问题讨论】:

  • “javascript 确认弹出窗口”是什么意思 > 警报?确认?自定义对话窗口?弹出窗口?

标签: testing selenium


【解决方案1】:

总结:在 IDE 中使用 storeConfirmation。

您必须使用确认对话框。否则 Selenium 测试将失败。

来自 Java Selenium RC API Selenium.html.getConfirmation 方法:

如果生成确认但 你不消费它 getConfirmation 方法,下一个 Selenium 操作将失败。

编辑:

storeConfirmation 也会使用确认。

storeConfirmation(变量名)

检索 JavaScript 确认对话框的消息 在上一个操作期间生成。

如果生成了确认但您没有使用它 getConfirmation 方法,下一个 Selenium 操作将失败。

【讨论】:

  • 但是我怎样才能从 Selenium IDE(firefox 插件)做到这一点?那里没有像 getConfirmation 这样的命令。
  • 这对我来说是完美的答案。
【解决方案2】:

我遇到了同样的问题,我是这样解决的:

选择OkOnNextConfirmation 点击按钮ID 断言确认

这使我的测试在我的 Selenium IDE 中运行绿色。

执行此操作的代码是:

<tr>
    <td>chooseOkOnNextConfirmation</td>
    <td></td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>ctl00_CPHMain_ucFormDMS_grdDocumentList_ctl00_ctl04_btnDelete</td>
    <td></td>
</tr>
<tr>
    <td>assertConfirmation</td>
    <td>Areyousureyouwanttodeletethisdocument?</td>
    <td></td>
</tr>

【讨论】:

  • 如果我得到下一个确认,首先取消,然后确认确认,我该怎么办?
  • 我没有可用的项目,所以我现在不能帮助你:(
【解决方案3】:

使用 selenium.chooseOkOnNextConfirmation 是正确的,但不能单独使用

selenium.click("xpath=//button"); selenium.getConfirmation(); selenium.chooseOkOnNextConfirmation(); 在这里它将首先单击按钮并获得确认,然后从该确认中单击 OK

【讨论】:

    【解决方案4】:

    在 Selenium IDE 中,您可以使用 waitForConfirmation(pattern)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      • 2013-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多