我开始使用Selenium IDE并尝试测试一个充满模式对话框 ( window.showModalDialog
) 的 web 应用程序。
记录测试似乎有效(除了弹出对话框时日志中没有任何内容),但它们无法正常播放。该脚本实际上打开了窗口(由单击按钮触发),但随后只是无限期地等待。
有什么建议么?
我开始使用Selenium IDE并尝试测试一个充满模式对话框 ( window.showModalDialog
) 的 web 应用程序。
记录测试似乎有效(除了弹出对话框时日志中没有任何内容),但它们无法正常播放。该脚本实际上打开了窗口(由单击按钮触发),但随后只是无限期地等待。
有什么建议么?
我一直在使用 Selenium IDE 来测试 jQuery modals 已经有一段时间了,我从来没有遇到过任何问题。以下是我为确保测试在播放时正确执行而做的事情:
希望这可以帮助。如果您需要进一步的帮助,您可以与我分享代码以及 IDE 向您抛出的执行错误。
从Selenium FAQ中,Selenium 显然适用于某些类型的对话框,但不适用于其他类型:
我无法与弹出对话框交互。我的测试停止了!
您可以,但前提是对话框是警报或确认对话框。其他特殊对话框无法被 javascript 关闭,因此目前无法与之交互。其中包括“保存文件”、“记住此密码”(Firefox) 和模式 (IE) 对话框。当它们出现时,Selenium 只能绝望地绞着手。
要解决此问题,您可以使用解决方法(如果存在);否则你可能不得不从你的自动化语料库中排除测试。对于 Firefox 中的“保存文件”对话框,可以在通过 RC 运行时指定自定义模板,该模板将始终导致文件下载到指定位置,而无需询问用户(参见 http://forums.openqa.org /thread.jspa?messageID=31350)。在您选择记住它之后,“记住此密码”对话框不应再次出现。目前,对于 IE 模式对话框,没有什么可以做的。
我似乎记得有人使用AutoHotKey脚本解决了这个问题,该脚本关闭了对话框。
这就是我在 Selenium IDE 中处理弹出警报的方式
右键单击元素(在这种情况下是您的弹出窗口),您可以选择一些命令。还有一个显示所有可用命令,这可能会有所帮助。您应该使用 AssertElementPreset,我猜在这种情况下最好的定位器是 CSS。所以你可以选择 AssertElementPresent。
或者
您可以在 Selenium IDE 上使用两个命令
selectWindow | null
verifyElementPresent | css=div.content
希望这可以帮助!