如何在CodeceptJS中尝试捕获

时间:2017-08-03 18:56:05

标签: javascript node.js try-catch webdriver-io codeceptjs

我在我的页面对象中执行此操作:

try{
    I.selectOption(this.SELECT, this.OPTION);
}
catch(error){
    I.say('Option missing, but thats sometimes expected ' + error);
}

但是当定位器与选项元素不匹配时,它仍然无法通过测试。

我想抓住并继续测试,而不会失败。

更新:

看起来它取决于try块中的内容。

如果我在那里放置一个断言,比如I.see('something');那么就不会跳过catch块。但是try块中的非断言,如I.selectOption('something')会抛出未被catch捕获的错误。

2 个答案:

答案 0 :(得分:0)

应该在promise链上执行try-catch。我想你可以这样做:

I.selectOption(this.SELECT, this.OPTION).catch(() => I.say(''));

答案 1 :(得分:0)

I.selectOption(this.SELECT, this.OPTION)
.then(() => I.say('try block'))
.catch(() => I.say('catch block'));