首先,没有“最佳实践”,只有在您的特定情况下效果良好的实践。抱歉,那是我的老乡了…
除非您无法使用现有方法,否则我不会花精力在自定义属性上。我更喜欢在可能的情况下使用现有的定位器(查找逻辑)。
尽可能使用ID属性。如果页面是有效的HTML,则ID在页面上是唯一的。它们在每种浏览器中的解析速度都非常快,并且UI可能会发生巨大变化,但是您的脚本仍然可以找到该元素。
有时,ID不是正确的选择。当您使用诸如网格控件之类的东西时,动态生成的ID几乎总是 错误的
选择。您依赖于可能与特定行位置相关联的ID,然后,如果行发生更改,您将一头雾水。
在某些情况下,您的开发人员可以通过将常量值追加或添加到动态生成的ID值来为您提供帮助。ASP.NET
Webforms使用动态生成的值来处理疯狂的事情,因此我多次使用后缀来发挥自己的优势。
当您无法获得稳定,可靠的ID或无法使用ID时,链接文本,名称属性值和CSS选择器(JQuery样式)是不错的第二选择。
在几乎所有情况下,XPath都是我的最后选择。它很慢,可能非常脆弱,并且当它是复杂的XPath时很难处理。就是说,如果您需要在定位器的页面DOM上上下移动,那么这是唯一的选择。
使用现有的FindBy方法之一意味着您将使用一个易于理解的,得到良好支持的定位器策略。当您试图找出一个旧的测试,或者当您加入一个新的团队时,这是一个很大的好处。
那是我的0.02美元。



