Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用量角器获取所有元素属性

使用量角器获取所有元素属性
EN

Stack Overflow用户
提问于 2014-12-29 11:08:34
回答 3查看 12.1K关注 0票数 14

根据文档,要按名称获取单个属性,可以在.getAttribute()上使用WebElement

代码语言:javascript
运行
AI代码解释
复制
var myElement = element(by.id('myId'));
expect(myElement.getAttribute('myAttr')).toEqual('myValue');

但是,如何获得元素所具有的所有属性呢?

量角器API中没有关于这个用例/功能的信息。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-07 11:50:07

您可以展开javascript的Element类型并添加getAttributes()函数:

代码语言:javascript
运行
AI代码解释
复制
Element.prototype.getAttributes = function() {
    return (function (node) {
        var attrs = {};
        for (var i=0;i<node.length;i++) {
            attrs[node.item(i).name] = node.item(i).value;
        }
        return attrs;
    })(this.attributes);
};

演示

然后,可以使用用于一个属性的相同方法测试属性的完整性:

代码语言:javascript
运行
AI代码解释
复制
var myElement = element(by.id('myId'));
expect(myElement.getAttributes()).toEqual({'attr1': 'value1', 'attr1': 'value1', ... });
票数 10
EN

Stack Overflow用户

发布于 2015-01-06 11:11:57

如果您需要的属性以数据为前缀,那么您应该能够对元素使用dataset,该元素将使执行脚本收缩一点:

代码语言:javascript
运行
AI代码解释
复制
browser.executeScript('return arguments[0].dataset;', elm).then(function (attrs) {
    console.log(attrs);
});
票数 1
EN

Stack Overflow用户

发布于 2015-01-07 08:46:26

您必须使用browser.executeScript()函数调用而不是量角器API,因为Element.attributes没有量角器API实现:

代码语言:javascript
运行
AI代码解释
复制
var elem = element(by.id('runButton'));
browser.executeScript("return arguments[0].attributes", elem.getWebElement())
    .then(function (attrs) {
        console.log(attrs.length);    // outputs numbers of attributes.
        // access collection of Attr objects
        console.log(attrs[0].isId);   // outputs `true`
        console.log(attrs[0].name);   // outputs `id`
        console.log(attrs[0].value);  // outputs `runButton`
    });

请记住,当表示属性时,它意味着一个命名的映射结构,而不是DOM模型上下文中的一个数组。这意味着您必须使用NamedNodeMap来访问Attr对象的集合。

它的工作方式与@alecxe的答案中没有迭代部分的方式相同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27694570

复制
相关文章
python for循环多个参数处理_python for循环嵌套
实际上,“使用for循环遍历数组的最简单方法”(Python类型被命名为“list”BTW)是第二种方法,即for item in somelist:
全栈程序员站长
2022/09/22
2.3K0
PythonWebServer如何同时处理多个请求
源于知乎上一个问题:https://www.zhihu.com/question/56472691/answer/293292349
the5fire
2019/03/01
1.9K0
【Python】函数进阶 ① ( 函数返回多个返回值 | 函数参数传递类型简介 | 位置参数 | 关键字参数 )
在函数中 , 如果要 返回 多个返回值 , 可以 在 return 语句中 , 设置多个返回值 , 这些返回值之间使用 逗号 隔开 , 这些返回值的类型是 元组 tuple 类型的 ;
韩曙亮
2023/10/11
1.6K0
【说站】python关键字如何传递参数
1、关键词传递以“形参变量名=实参”的形式参与实参关联,根据形参的名称进行参数传递,使实参和形参的顺序不一致。
很酷的站长
2022/11/23
9460
Python函数参数总结(位置参数、默认参数、可变参数、关键字参数和命名关键字参数)
Python函数的参数多达5种,不像Java那样参数只有一种,而是像C++那样提供默认参数,除此之外,还提供可变参数、关键字参数、命名关键字参数,这样就使得Python函数的参数变得十分复杂。但复杂意味着灵活便捷,Python语言之所以流行起来,与起本身巨大的灵活性是分不开的。可以说Python是最方便使用的语言。 Python参数类型: - 位置参数(positional arguments,官方定义,就是其他语言所说的参数) - 默认参数(类似C++的默认参数) - 可
Steve Wang
2018/02/05
22.3K0
Python函数参数总结(位置参数、默认参数、可变参数、关键字参数和命名关键字参数)
Golang 获取GET、POST参数及处理上传多个文件
http.request的三个属性Form、PostForm、MultipartForm:
IT工作者
2022/06/30
2.1K0
Python 的 map 函数也可以处理多个参数的函数
比起 map 带给程序员的理解负担,大多数 Python 程序员更喜欢列表推导来解决问题。
somenzz
2022/10/25
2.9K0
Python 的 map 函数也可以处理多个参数的函数
python返回多个参数
比如在游戏中经常需要从一个点移动到另一个点,给出坐标、位移和角度,就可以计算出新的新的坐标:
狼啸风云
2020/07/16
2.7K0
Python 关键字参数和可变参数
如果你有一些具有许多参数的函数,而你又希望只对其中的一些进行指定,那么你可以通过命名它们来给这些参数赋值——这就是python关键字参数(Keyword Arguments)——我们使用命名(关键字)而非位置(一直以来我们所使用的方式)来指定函数中的参数。
py3study
2020/01/16
1.2K0
JS中如何处理多个ajax并发请求?
通常 为了减少页面加载时间,先把核心内容显示处理,页面加载完成后再发送ajax请求获取其他数据 这时就可能产生多个ajax请求,为了用户体验,最好是发送并行请求,这就产生了并发问题,应该如何处理? (1)并行改串行 如果业务逻辑和用户体验允许的情况下,可以改为串行,处理起来最简单 function async1(){ //do sth... async2(); } function async2(){ //do sth... } async1(); (2)回调计数 function
dys
2018/04/02
5.5K0
函数的关键字参数
def func1(name, age, sex, *args): ''' 打印姓名,年龄,性别 ''' print(name) print(age) print(sex) # func1('python', 28,sex='man','s','23') ## 工作经验:不定长参数都是放到最后 func1(name='python', age=30, sex='nv') help(func1) # def func1(a,b, c=100,*args,**
汪凡
2018/05/29
5470
Seata如何处理跨多个请求的事务?
Seata 是一种开源的分布式事务解决方案,能够处理跨多个请求的事务,适用于各种容器、语言和数据访问类型。在微服务架构下,依赖多个服务的操作可能导致分布式事务的问题。Seata 提供了完整的解决方案以确保数据的一致性和可靠性。
用户1289394
2023/09/11
2940
Seata如何处理跨多个请求的事务?
如何将多个参数传递给 React 中的 onChange?
在 React 中,一些 HTML 元素,比如 input 和 textarea,具有 onChange 事件。onChange 事件是一个非常有用、非常常见的事件,用于捕获输入框中的文本变化。有时候,我们需要将多个参数同时传递给 onChange 事件处理函数,在本文中,我们将介绍如何实现这一目标。
网络技术联盟站
2023/06/07
2.8K0
Logstash:处理多个 input
这里的 input 可以支持多个 input,同时多个 worker 可以处理 filter 及 output:
腾讯云大数据
2020/07/31
2.8K0
Logstash:处理多个 input
如何优雅地处理命令行参数?
我们在Linux用到的命令常常支持很多参数,那么如何写一个程序,也像Linux命令一样支持很多参数呢?有什么什么优雅的处理方法?
编程珠玑
2019/08/21
1.1K0
如何给PHP添加多个错误处理函数
一些常规的PHP框架都会对PHP的错误、异常进行异常处理封装,方便框架日志记录,开发的时候方便处理。我们先看看几个框架错误处理:
写PHP的老王
2019/08/12
1.9K0
如何给PHP添加多个错误处理函数
图像处理中C++如何同时返回多个值
1 . pair<T,T> 返回两个值 //返回两个值的情况 pair<vector<double>,int> R_R(Mat& img) { int n=img.rows; vector<double> a; unsigned int m=img.cols; unsigned int k=img.rows; for(unsigned int i=0;i<m;i++) { for(unsigned int j=0;j<k;j++)
用户9831583
2022/06/16
8000
mybatis 使用tips - 使用多个参数
执行如下命令: mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate 可以使用mybatis generator mybatis 使用多个参数 自定义方法需要根据多个查询条件去查询: SELECT * FROM `db_demo`.`hot_topic` WHERE lang='english' AND category='017' AND topic_type='video' ORDER BY score DESC; 推荐使用
千往
2018/01/24
1.7K0
方法关键字WebMethod,参数关键字Abstract,Constraint,Deprecated
指定此方法是否为web method。仅适用于定义为web service或web客户端的类。
用户7741497
2022/07/07
4210
Swift 使用lexicographicallyprecedes 多个参数排序
版权声明:转载请标明出处 https://blog.csdn.net/ZY_FlyWay/article/details/89184264
星宇大前端
2019/04/18
1.2K0
Swift  使用lexicographicallyprecedes 多个参数排序

相似问题

如何解决ubuntu中unicode显示错误(不同)字符的问题?

10

需要哪种字体才能显示特定的Unicode字符?

10

WSL中缺少的字体

30

在bash提示符中更改unicode字符的字体大小

10

缺少Ubuntu字体

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文