我应该使用id来定位元素吗?

时间:2015-06-16 09:45:45

标签: angularjs selenium protractor end-to-end e2e-testing

开始使用Angular和Protractor。

编写一些重要的css选择器会让你感觉不对劲,这些选择器会在你改变某些东西时立即中断。 使用ID会使测试更容易。

我还没有使用任何id属性进行样式设置。使用ID进行测试是否有任何缺点我没有考虑过?

1 个答案:

答案 0 :(得分:7)

一般规则是尽可能使用ID,假设它们在DOM中是唯一的,而不是动态生成的。 Quoting Jim Holmes

  

尽可能使用ID属性。如果页面是有效的HTML,那么   ID在页面上是唯一的。他们的速度非常快   每个浏览器的分辨率,UI可以发生巨大变化但是   你的脚本仍会找到元素。

     

有时ID不是正确的选择。动态生成的ID是   当你使用类似的东西时几乎总是错误的选择   网格控件。您依赖于可能与特定关联的ID   行位置然后如果你的行发生变化你就会被搞砸。

此外,通常尝试使用“面向数据的”方法by.modelby.bindingby.repeater定位器,或者如果您依赖类名称,明智地选择它们:不要使用面向布局的类,如.col-xs-4.container-fluid

另见这些相关主题:

相关问题