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

boo*_*oop 7 selenium end-to-end angularjs protractor e2e-testing

开始使用Angular和Protractor.

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

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

ale*_*cxe 8

一般规则是尽可能使用ID,假设它们在DOM中是唯一的,而不是动态生成的.引用吉姆福尔摩斯:

尽可能使用ID属性.如果页面是有效的HTML,则页面上的ID是唯一的.它们在每个浏览器中的分辨率非常快,并且UI可以发生显着变化,但您的脚本仍然会找到该元素.

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

另外,一般尽量使用"面向数据"的方法:by.model,by.binding,by.repeater定位器,或者如果你依赖的类名,选择他们明智:不使用导向布局类,比如.col-xs-4.container-fluid.

另请参阅以下相关主题: