0

我正在用 PHP(5.3.15)编写一个 Selenium(服务器 2.31.0)测试,需要测试弹出窗口是否关闭。弹出窗口是使用jQuery UI Dialog Widget实现的。HelloWorld弹出窗口本身包含一些不会出现在弹出窗口之外的简单文本 ( )。

使用 . 检测弹出窗口的外观很好isTextPresent("HelloWorld");。然后我关闭窗口clickAt("//a[contains(@class, 'ui-dialog-titlebar-close')]");(我可以看到工作),然后测试关闭的弹出窗口!isTextPresent("HelloWorld");。我应该补充一点,我正在做适当的事情以确保弹出窗口有时间打开/关闭;有一个重复的暂停和检查周期,如果我通过显式睡眠来强制问题,我也可以看到效果。

这在 Firefox (19.0.2) 下工作正常,但在 Chrome (25.0.1364.172) 下失败。即窗口正在关闭,但我没有在 Selenium 下检测到这一点。我预计这是由于 Selenium 如何进行isTextPresent检查和/或弹出窗口仅被隐藏而不是关闭。

我正在寻找一种方法来检测适用于 Chrome 的关闭弹出窗口。跨浏览器会很棒,但目前,我可以在不同的浏览器上运行不同的测试。

4

1 回答 1

0

可以使用isVisible弹出窗口 ( isVisible("//a[contains(@class, \'ui-dialog-titlebar-close\')]");) 生成等效测试(就测试的设计目的而言,与检查的特定先前行为相反),并在关闭弹出窗口后进行相应的否定测试。这适用于 Chrome (25.0.1364.172) 和 Firefox (19.0.2)。

这不是对弹出窗口的内容进行相同的检查,但是,由于所需的效果是测试弹出窗口的存在,这就足够了。

于 2013-03-20T09:47:43.790 回答