Javascript 如何使用量角器确定元素是否可见
在页面上,需要检查元素是否可见 元素HTML代码如下所示: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"
<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);
})