这是我的测试堆栈:
“chai”:“^ 3.5.0”,
“chai-as-promise”:“^ 6.0.0”,
“黄瓜”:“^ 1.3.3”,
“量角器”:“~5.1.2”,
“量角器 - 黄瓜 - 框架”:“^ 3.1.0”,
+ selenium-server-standalone-3.4.0.jar
当我运行我的场景并且找不到一个元素时(自上次运行测试以来DOM已经改变),所有步骤都是绿色的,但测试以异常结束:
[15:51:49] E / launcher - 使用定位器找不到任何元素:by.cssContainingText(“checkbox”,“énergie”)
[15:51:49] E / launcher - NoSuchElementError:找不到使用locator的元素:by.cssContainingText(“checkbox”,“énergie”)
我希望测试失败并显示红色结果,失败的步骤应抛出异常消息。这是我使用Behat时的行为。有没有配置量角器或黄瓜-js的东西?
编辑:
这是我的实施:
this.When(/^I fill "([^"]*)" step$/, function (step) {
element(by.cssContainingText("checkbox", "Électricité")).click();
element(by.cssContainingText("checkbox-multi", "Chauffage")).click();
element(by.buttonText("Suivant")).click();
});
答案 0 :(得分:1)
如果进程以199返回代码退出,那么量角器将捕获该异常并结束该过程。您需要告诉它忽略未捕获的异常,如show here。
编辑:
您还需要返回最后一个承诺,以便黄瓜知道该步骤何时实际完成。在您的步骤定义中,除了将这些点击计划发生然后返回之外,其他任何事情都没有。
return element(by.buttonText("Suivant")).click();
答案 1 :(得分:0)
我还没有看到您的步骤实现,但我认为您的代码中存在“错误”。我们通常看到的错误是:
在这里,您将找到两者的示例实现。请尝试一下,看看是否有帮助,否则请在此处粘贴您的步骤实施,以便让我们更好地为您提供帮助。
// With Callbacks
this.Then(/^I expect it to become green$/, function(callback) {
expect(element(by.css('#selector')).getText())
.to.eventually.equal('I am green').and.notify(callback);
});
// With Promises
this.Then(/^I expect it to become green$/, function() {
return expect(element(by.css('#selector')).getText())
.to.eventually.equal('I am green');
});
答案 2 :(得分:0)
this解决了我的问题。现在很清楚,我必须编写DOM中所有可能的错误。它添加了很多代码,我怀疑它也会减慢我的测试...