Protractor 如何通过标题或量角器中的任何特定属性值来定位元素?

Protractor 如何通过标题或量角器中的任何特定属性值来定位元素?,protractor,Protractor,我有一个没有定义Id的元素。类名不允许我唯一地标识元素。 这就是为什么我想使用角色或标题属性来定位它: <p-dialog header="Deleting" showeffect="fade" role="dialog" class="ng-tns"> </p-dialog> 我应该如何在量角器/Selenium Webdriver中实现这一点? 我可以通过xpath实现这一点,但据我所知,建议您这样做。 我是否需要使用或有更简单的解决方案来定义自己的定位器?量角

我有一个没有定义Id的元素。类名不允许我唯一地标识元素。 这就是为什么我想使用
角色
标题
属性来定位它:

<p-dialog header="Deleting" showeffect="fade" role="dialog"
class="ng-tns"> </p-dialog>

我应该如何在量角器/Selenium Webdriver中实现这一点? 我可以通过xpath实现这一点,但据我所知,建议您这样做。
我是否需要使用或有更简单的解决方案来定义自己的定位器?

量角器建议使用css选择器作为第一选项,xpath作为第二选项,因为css选择器在某些情况下可以解决您的问题

该建议的主要原因如下:

  • xpath不比css选择器快
  • xpath在某些浏览器中区分大小写
  • 对于较低的IE,如6,本机不支持xpath
  • xpath查找相同元素的时间通常比css选择器长
  • 但是css选择器有两个缺点,xpath可以做到:

  • 无法通过文本找到元素
  • 找不到父元素(只能向下查找)
  • 对于您的情况,您可以尝试以下定位器:

    // css selector
    p-dialog[header="Deleting"]
    p-dialog[role="dialog"]
    p-dialog[header="Deleting"][role="dialog"]
    

    非常感谢。您建议使用哪些资源来学习如何为页面上的特定元素构造复杂的css和xpath定位器?@matandked,对于css select和xpath的基本语法,可以使用很多资源。要成为大师,实践是最好的方式。