通过数据属性查找元素

妖精

我正在使用RSpec改进测试capybara-webkit,试图删除所有的cssxpath选择器,例如

find('#edit_user > div:nth-child(7) > div > div > button').click

我正在寻找替代它们的最佳选择。

我本来要使用的css class元素,但是某些“专业”水豚测试人员说这不是最佳选择。

所以我的问题是:我可以data在测试中使用属性吗?
如果我有一个元素

<button name="button" type="submit" class="button last" data-test="edit.update">Update/button>

我能做吗

find('edit.update').click

您认为这是个好主意吗?如果您对此主题有更多想法/信息,请随时发表评论!

贾斯汀·柯

要通过元素的data- *属性定位元素,您需要使用CSS选择器或XPath。

对于CSS选择器:

find('button[data-test="edit.update"]').click

对于XPath:

find('//button[@data-test="edit.update"]').click

它是否是一个好主意,实际上取决于应用程序。您想选择可以唯一标识元素的内容。如果“ edit.update”不是唯一的,则将不是一个很好的选择。class如果按钮具有唯一的类(“按钮”和“最后一个”不太可能),则属性会很好。

最好的方法实际上是使用静态id属性,因为它们在页面中应该是唯一的,并且更改的可能性较小。find方法还支持通过id定位元素,这意味着您不必编写CSS选择器或XPath。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JQuery - 通过数据属性 = 变量查找元素

来自分类Dev

通过数据属性选择通过Ajax加载的元素

来自分类Dev

通过数据属性选择通过Ajax加载的元素

来自分类Dev

使用jQUery通过数据切换查找元素

来自分类Dev

通过数据属性查找并填写输入字段

来自分类Dev

通过数据属性查找和删除项目

来自分类Dev

通过数据属性查找和删除项目

来自分类Dev

通过数据属性循环元素并替换值

来自分类Dev

通过数据属性循环元素并替换值

来自分类Dev

如何使用JavaScript在HTML DOM对象数组中通过数据选择器查找元素?

来自分类Dev

通过数据属性选择(JQuery)

来自分类Dev

在Django模板中通过数据属性的数值切换元素

来自分类Dev

D3.js:通过数据属性选择元素的替代方法?

来自分类Dev

jQuery检查元素通过数据属性而存在,仅匹配特定值的开头

来自分类Dev

通过数据属性和jQuery中ID的一部分获取元素

来自分类Dev

在Django模板中通过数据属性的数值切换元素

来自分类Dev

D3-通过数据识别元素

来自分类Dev

通过数据绑定API设置众所周知的属性值

来自分类Dev

如何使用jQuery通过数据属性过滤选项?

来自分类Dev

通过数据属性设置每个DIV的高度

来自分类Dev

如何通过数据属性过滤选择框?

来自分类Dev

通过数据属性设置每个DIV的高度

来自分类Dev

通过数据绑定API设置众所周知的属性值

来自分类Dev

Vuejs 通过数据属性动态加载指令

来自分类Dev

通过数据排序

来自分类Dev

通过数据。navigationController

来自分类Dev

通过jQuery查找数据属性

来自分类Dev

ArangoDB-如何通过数组元素的子字符串在集合中查找元素?

来自分类Dev

jQuery,如何通过属性NAME查找元素?

Related 相关文章

热门标签

归档