量角器 - 如何通过自定义(非HTML)属性定位元素?

时间:2014-05-13 11:10:23

标签: javascript html angularjs selenium protractor

我正在使用Selenium WebDriver和Protractor在我的角度项目上运行e2e测试。 假设我有一个像:

这样的元素
<div my-directive my-unique-id="abc123"></div>

如何找到上述元素。 我尝试使用element(by.css('div[my-unique-id="abc123"]'));,但它给出了NoSuchElementError。

如果我尝试使用HTML等属性,例如,我想找到:

<a title="myTitle" href="">Click me</a>

我能够使用element(by.css('a[title="myTitle"]'))

正确找到元素

如果元素没有任何标准HTML属性,如何找到具有自定义属性的元素?

2 个答案:

答案 0 :(得分:18)

尝试使用xpath:

element(by.xpath('//div[@my-unique-id="abc123"]'))

或仅按属性

element(by.xpath('//div[@my-unique-id]'))

答案 1 :(得分:3)

尝试使用:

element(by.css('[my-unique-id="abc123"]'))

对于简单的情况,它比xpath更容易,更易读。

有关xpath语法的更多信息以及何时有用:http://www.w3schools.com/xml/xml_xpath.asp