7

我在我的页面对象中这样做:

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

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

我想赶上并继续测试,而不会失败。

更新:

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

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

4

2 回答 2

1

Try-catch 应该在 Promise 链上执行。我认为您可以通过以下方式获得它:

I.selectOption(this.SELECT, this.OPTION).catch(() => I.say(''));
于 2017-08-03T20:55:22.127 回答
0
I.selectOption(this.SELECT, this.OPTION)
.then(() => I.say('try block'))
.catch(() => I.say('catch block'));
于 2021-01-19T16:20:35.403 回答