【发布时间】:2013-03-15 09:32:26
【问题描述】:
我正在用 PHP (5.3.15) 编写 Selenium (server 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) 下失败。 IE。窗口正在关闭,但我没有在 Selenium 下检测到这一点。我预计这是由于 Selenium 如何进行 isTextPresent 检查和/或弹出窗口仅被隐藏而不是关闭。
我正在寻找一种方法来检测适用于 Chrome 的关闭弹出窗口。跨浏览器会很棒,但目前我可以在不同的浏览器上运行不同的测试。
【问题讨论】:
-
将方法更改为
isVisible()或isDisplayed()怎么样?我的猜测是这个弹出窗口仍将在页面上,但被 javascript 隐藏。这就是为什么 isTextPresent 可以声称文本仍然存在的原因......
标签: php jquery google-chrome selenium