我正在PHP(5.3.15)中编写一个需要测试弹出窗口关闭的Selenium(服务器2.31.0)测试。弹出窗口使用jQuery UI Dialog Widget实现。弹出窗口本身包含一些简单的文字(HelloWorld
),它不会出现在弹出窗口之外。使用Selenium检测Chrome中的弹出窗口的关闭
使用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上工作的关闭弹出窗口的方法。跨浏览器将是伟大的,但目前,我可以在不同的浏览器上运行不同的测试。
将方法更改为'isVisible()'或'isDisplayed()'怎么办?我的猜测是这个弹出窗口仍然在页面上,但被javascript隐藏。所以多数民众赞成为什么isTextPresent可以声称你的文字仍然存在... – 2013-03-15 09:37:57