Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/45.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用量角器确定元素是否可见_Javascript_Protractor - Fatal编程技术网

Javascript 如何使用量角器确定元素是否可见

Javascript 如何使用量角器确定元素是否可见,javascript,protractor,Javascript,Protractor,在页面上,需要检查元素是否可见 元素HTML代码如下所示: <li ng-class="{active: (subview == 'add')}" ng-show="iSU || dp.ua" class="ng-hide"> <a href="#/setup/users/all/add/" lid="users-submenu-create-user-tab"

在页面上,需要检查元素是否可见

元素HTML代码如下所示:

    <li ng-class="{active: (subview == 'add')}" ng-show="iSU || dp.ua" class="ng-hide">
      <a href="#/setup/users/all/add/" lid="users-submenu-create-user-tab" class="ng-binding">
        Create user
      </a>
   </li>
isPresent()返回“true”,因为元素存在于DOM中

解决方案2:

通过isDisplayed()函数进行验证的思想

获取错误“createUserParentEle.isDisplayed”不是函数

解决方案3: 考虑通过获取父元素类变量进行验证,并验证它是否应为“ng hide”

this.isCreateUserTabDisplayed = function()
    {
               var createUserTab = elmenet(by.lid("users-submenu-create-user-tab")).getWebElement();
               var createUserParentEle = createUserTab.getDriver();
              return createUserParentEle.getAttribute('class').then(function(attrValue){
                       if( attrValue  == 'ng-hide')
                          return false
                       else
                          return true;
                  });
     }
获取错误“createUserParentEle.getAttribute”不是函数


请大家帮忙。

我注意到关于量角器的stackoverflow出现了很多问题,因为用户倾向于使事情过于复杂,而解决方案可能相当简单

我强烈建议您首先从量角器文档开始,它提供了示例所需的一切

你的情况就是你要找的

this.isCreateUserTabDisplayed = function() {
  var createUserTab = elmenet(by.lid("users-submenu-create-user-tab"));
  return createUserTab.isDisplayed()
}

// and use like this
expect(await this.isCreateUserTabDisplayed()).toBe(true);

// or if you don't know how to use await/async, which I recommend to learn too
this.isCreateUserTabDisplayed().then(function(result){
   expect(result).toBe(true);
})
this.isCreateUserTabDisplayed = function()
    {
               var createUserTab = elmenet(by.lid("users-submenu-create-user-tab")).getWebElement();
               var createUserParentEle = createUserTab.getDriver();
              return createUserParentEle.getAttribute('class').then(function(attrValue){
                       if( attrValue  == 'ng-hide')
                          return false
                       else
                          return true;
                  });
     }
this.isCreateUserTabDisplayed = function() {
  var createUserTab = elmenet(by.lid("users-submenu-create-user-tab"));
  return createUserTab.isDisplayed()
}

// and use like this
expect(await this.isCreateUserTabDisplayed()).toBe(true);

// or if you don't know how to use await/async, which I recommend to learn too
this.isCreateUserTabDisplayed().then(function(result){
   expect(result).toBe(true);
})