我正在使用RSpec
和改进测试capybara-webkit
,试图删除所有的css
和xpath
选择器,例如
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] 删除。
我来说两句