使用Protractor API无法使用以下代码捕获错误

时间:2014-06-16 10:08:06

标签: javascript protractor

我已经创建了一个函数,其中我故意传递错误的定位器,以便我想捕获错误..下面是代码..

SafeClick:function(locator){
    try {
       _elementIdentify = locator.isDisplayed().then(function(){
          console.info('Element Displayed');
          locator.click();
       }, function(err) {
          console.error('Error Finding the Element', +err );
       });
    } catch(err) {
       console.info('Error occured');
    }
}

但是使用上面的代码,不会打印catch块中的语句。

1 个答案:

答案 0 :(得分:1)

很可能你试图从回调中捕获错误。你不能这样做。回调函数中的东西在不同的上下文中执行,所以你永远不会从当时的回调中捕获那个,即使你扔到那里。

编辑:要捕捉错误,你可以尝试这样写:

SafeClick:function(locator){

       _elementIdentify = locator.isDisplayed().then(function(){
        try {
          console.info('Element Displayed');
          locator.click();
        }
        catch(err) {
          console.info('Error occured');
        }
       }, function(err) {
          console.error('Error Finding the Element', +err );
       });
}

这是从回调中捕获异常的唯一方法。 作为旁注,你尝试写的东西似乎没必要。您应该知道使用量角器操作的UI的状态。如果它处于错误状态,你想让它失败吗?