我的公司希望我使用 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 上比我更大师。
如果您能帮助我,我将不胜感激。