【发布时间】:2013-06-10 21:15:04
【问题描述】:
我的公司希望我使用 JBehave 和 Selenium 开发一个“可视化”GUI 风格的 BDD 函数,该函数使用 javascript 警报/确认弹出窗口来提示用户运行测试达到的确切步骤,例如:
- 假设我转到“www.google.com”
- 当我登录时
所以我们想在自动化测试过程中添加Javascript警告窗口弹出,弹出的窗口有“确定”按钮,所以当用户点击确定按钮时,测试将继续下一步,以此类推。 ..
我的问题是:我使用 Selenium 的 executeScript API 编写了一个 javascript 函数,它调用弹出警报窗口:
public void stepText(String step) {
executeScript("alert('"+step+"');");
}
所以我希望当我点击确定按钮时,弹出的窗口会消失,测试会继续下一步……但让我震惊的是,当我点击它时,测试抛出异常并崩溃……
例外是:selenium.WebDriverException
但我发现如果我添加以下代码,使测试自动检测警报窗口并使用以下常用的 selenium 警报句柄函数接受它:
Alert alert=switchTo().alert();
alert.accept();
这可以使测试运行良好,因此看起来我无法手动单击警报(手动单击后,硒仍然无法返回浏览器...失去与浏览器的连接?),但是自动化警报句柄代码有效...
当然,我们想让用户手动点击警报窗口来控制测试执行,而不是自动化处理警报。
我真的在这里卡了一段时间,并且在谷歌上搜索了很多,但在网上找不到类似的例子,我希望你能告诉我,因为你在 JBehave 和 Selenium 上比我更大师.
如果您能帮助我,我将不胜感激。
【问题讨论】: