如果元素在量角器中不可见,则继续 [英] Continue if element is not visible in protractor

查看:63
本文介绍了如果元素在量角器中不可见,则继续的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想检查一个元素是否可见,如果不可见,我希望我的测试继续进行其他内容.

I want to check if an element is visible and if it's not, I want my test to continue with something else.

问题是,如果元素不可见,似乎没有任何工作...我已经尝试过 isDisplayed(), isPresent(), invisibilityOf()... 但如果元素不可见,则测试失败.例如.

The problem is that if element is not visible, nothing seems to be working... I've already tried isDisplayed(), isPresent(), invisibilityOf()... but test fails if element is not visible. Eg.

 element(myElement).isDisplayed().then(function(result) {
      if (result) {
      //do something
      }
    else {
     //do something else
     }
    }

如果 myElement 存在,这工作得很好.但如果没有,测试将失败并显示错误:No element found using locator: By.cssSelector(myCss).所以不知何故它没有解决 isDisplayed() 返回的承诺,所以它永远不会去 else 部分.如果未显示元素,我该如何保持测试运行?

This works just fine if myElement is present. But if not, test fails with error: No element found using locator: By.cssSelector(myCss). So somehow it doesn't resolve the promise returned by isDisplayed(), so it never goes to else section. What can I do to keep my test running if element is not displayed?

推荐答案

您可以通过链式承诺来解决此问题.仅当元素同时存在且显示时,此函数才会返回 true.

You can chain promises to resolve this issue. This function will return true only if element both is present and is displayed.

var isApproachable = function(element) {
  return element.isPresent().then(function(present) {
    return present
      ? element.isDisplayed()
      : false;
  });
}

isApproachable(myElement).then(function(approachable) {
  if (approachable) ...
});

这篇关于如果元素在量角器中不可见,则继续的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆