javascript - 如何使用量角器查找元素是否可见
问题描述
在页面上需要检查元素是否可见。
元素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>
我需要检查元素“创建用户”是否可见。如果一个元素被隐藏,那么父类将是“ng-hide”。
我尝试了很多方法来检查元素但无法成功。
//'lid'有一个自定义方法,我们用它来识别元素。
期望(util.isCreateUserTabDisplayed()).toBe(false);
解决方案 1: “isCreateUserTabDisplayed()”的定义
this.isCreateUserTabDisplayed = function()
{
var createUserTab = elmenet(by.lid("users-submenu-create-user-tab"));
return createUserTab.isPresent()
}
isPresent() 返回“true”,因为元素存在于 DOM 中。
解决方案2:
通过 isDisplayed() 函数验证的想法
this.isCreateUserTabDisplayed = function()
{
var createUserTab = elmenet(by.lid("users-submenu-create-user-tab")).getWebElement();
var createUserParentEle = createUserTab.getDriver();
createUserParentEle.isDisplayed().then(function(result){
return result;
});
}
收到错误“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问题都出现了,因为用户倾向于使事情过于复杂,而解决方案可能相当简单
我强烈建议始终首先从量角器文档开始,它包含您需要的所有示例
在您的情况下isDisplayed()是您正在寻找的
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);
})
推荐阅读
- java - 尽管实际和预期相同,但 RESULT 对象的 Junit 断言错误
- python - 单元格颜色excel数据框熊猫
- sandbox - 我可以使用 Golang/Python 构建自己的沙盒环境吗?
- reactjs - 在 useform 结果中提交获取的数据会触发错误
- z-index - 在 react-native-maps 中的街道名称上绘制折线
- python - 在虚拟环境中导入python中的numpy和scipy库
- android - 当我用颤振向 asp.net core(local) 发送请求时,我收到 (Connection reset by peer) 错误
- oauth-2.0 - oAuth 令牌会被盗吗
- xamarin.android - Xamarin 错误,我设置了目标版本和最小版本但无法解决问题
- php - 我如何在本地使用 wp_mail 发送邮件它不起作用