8

我开始使用Selenium IDE并尝试测试一个充满模式对话框 ( window.showModalDialog) 的 web 应用程序。

记录测试似乎有效(除了弹出对话框时日志中没有任何内容),但它们无法正常播放。该脚本实际上打开了窗口(由单击按钮触发),但随后只是无限期地等待。

有什么建议么?

4

4 回答 4

3

我一直在使用 Selenium IDE 来测试 jQuery modals 已经有一段时间了,我从来没有遇到过任何问题。以下是我为确保测试在播放时正确执行而做的事情:

  • 以尽可能低的速度执行脚本
  • 当模式打开时,我使用 waitForElementPresent 命令来验证页面上是否存在至少一个组成元素;论点是,如果一个元素正确加载,则可以安全地假设所有元素以及模态窗口都正确加载。

希望这可以帮助。如果您需要进一步的帮助,您可以与我分享代码以及 IDE 向您抛出的执行错误。

于 2011-07-01T07:58:29.130 回答
3

Selenium FAQ中,Selenium 显然适用于某些类型的对话框,但不适用于其他类型:

我无法与弹出对话框交互。我的测试停止了!

您可以,但前提是对话框是警报或确认对话框。其他特殊对话框无法被 javascript 关闭,因此目前无法与之交互。其中包括“保存文件”、“记住此密码”(Firefox) 和模式 (IE) 对话框。当它们出现时,Selenium 只能绝望地绞着手。

要解决此问题,您可以使用解决方法(如果存在);否则你可能不得不从你的自动化语料库中排除测试。对于 Firefox 中的“保存文件”对话框,可以在通过 RC 运行时指定自定义模板,该模板将始终导致文件下载到指定位置,而无需询问用户(参见 http://forums.openqa.org /thread.jspa?messageID=31350)。在您选择记住它之后,“记住此密码”对话框不应再次出现。目前,对于 IE 模式对话框,没有什么可以做的。

我似乎记得有人使用AutoHotKey脚本解决了这个问题,该脚本关闭了对话框。

于 2009-05-15T03:54:23.650 回答
2

模态窗口被黑了:) http://seleniumdeal.blogspot.com/2009/01/handling-modal-window-with-selenium.html

于 2009-06-19T21:55:46.300 回答
0

这就是我在 Selenium IDE 中处理弹出警报的方式

右键单击元素(在这种情况下是您的弹出窗口),您可以选择一些命令。还有一个显示所有可用命令,这可能会有所帮助。您应该使用 AssertElementPreset,我猜在这种情况下最好的定位器是 CSS。所以你可以选择 AssertElementPresent。

或者

您可以在 Selenium IDE 上使用两个命令

selectWindow | null
verifyElementPresent | css=div.content

希望这可以帮助!

于 2016-01-26T14:40:32.777 回答