【发布时间】:2016-06-29 17:54:16
【问题描述】:
我正在使用 Ruby/Selenium-WebDriver/Cucumber 构建一个自动化套件。我想要实现的是在出现任何意外错误的情况下恢复黄瓜场景。
例如意外弹出窗口
我可能会在应用程序的任何位置看到一个模态对话框。我希望我的代码在发生异常时关闭弹出窗口并恢复执行。
这样做的目的是,自动化套件将在多个系统上运行数天。除了日志和输出报告之外,不会有任何类型的监控。我不希望这些不需要的异常妨碍执行。
【问题讨论】:
-
自动化测试的重点不就是发现意外错误吗?您可以
rescue步骤定义中的异常,但这不是标准 BDD。这是一个可能有帮助的例子:stackoverflow.com/questions/26761624/… -
如果你能举个例子可能会有所帮助。通常,错误会阻止您完成场景的其余部分,因此不清楚您要恢复什么。我可以看到想要继续的一个场景是,如果您在同一场景中有一系列断言(但我不确定这是否被视为意外错误)。
-
ok.. 例如.. 我不知道应用程序在什么时候会弹出一个弹出窗口。现在,我想做一些可以关闭弹出窗口并恢复执行的事情。
-
@orde -> 我在步骤定义中处理了少数情况下的异常。但是我不能为每个代码编写一个开始救援块来处理意外情况。
-
@yudi2312,当您说弹出窗口可以在任何时候发生时,您的字面意思是在用户执行操作时(例如单击链接后)的任意时间点还是随机发生?我问是因为,Watir-Webdriver 有几种不同的机制可以在动作之前/之后执行额外的动作。哪一个有用将取决于对话发生的确切时间。
标签: ruby selenium selenium-webdriver cucumber watir-webdriver