我的页面上有一个链接,我需要点击该链接才能删除个人资料。当我单击它时,会弹出一个确认对话框,要求确认它(将背景设置为黑暗并显示一个对话框,而不是实际的窗口弹出窗口)。所以,如果我插入一个命令assertConformation
,它会给我一个错误,说它不存在。如果我不使用这个命令,selenium会给出错误,说有确认...奇怪吧?以下是证据:
没有命令:
使用命令:
你们知道在这种情况下我能做些什么吗?这是确认类型:
答案 0 :(得分:1)
这是关于消费确认。如果生成确认,则必须使用waitForConfirmation
和storeConfirmation
,否则测试用例将失败。
阅读Selenium IDE功能帮助(粗体):
storeConfirmation(variableName)从getConfirmation()生成
返回: 最新的JavaScript确认对话框的消息
检索上一个操作期间生成的JavaScript确认对话框的消息。
默认情况下,confirm函数将返回true,与手动单击OK具有相同的效果。这可以通过先前的执行来改变 chooseCancelOnNextConfirmation命令。
如果生成确认但您没有使用getConfirmation消耗它,则下一个Selenium操作将失败。
注意:在Selenium下,JavaScript确认不会弹出可见的对话框。
注意:Selenium不支持在页面的onload()事件处理程序中生成的JavaScript确认。在这种情况下可见 对话框将生成,Selenium将挂起,直到您手动 单击“确定”。
如果仅在有时生成确认,我会重新决定使用 Selblocks 以及storeConfirmationPresent
和if
命令。
答案 1 :(得分:0)
撤消调用chooseCancelOnNextConfirmation的效果。请注意,Selenium的重写window.confirm()函数通常会被覆盖 自动返回true,就像用户手动点击OK一样,所以 除非出于某种原因需要,否则不应该使用此命令 在下次确认之前改变主意。任何之后 确认,Selenium将恢复使用默认行为 未来确认,自动返回true(OK),除非/直到 你明确地为每个人调用chooseCancelOnNextConfirmation 确认。
请注意 - 每次确认时,您必须使用相应的getConfirmation消耗它,否则下一个selenium 操作失败。
会让你通过提醒框,如果你想确保弹出确认框,我建议 waitForConfirmation 或 waitForAlert