我正在我的页面对象中实现以下内容:
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捕获。
I.selectOption
调用之前放置await
,以便catch
捕获失败。 (2)我有一个预感,这是因为CodeceptJS使用全局promise链。因此,如果I.*失败,则内部全局promise将失败,而不管是否被捕获。 - drmercer