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

Mad*_*kar 13 html javascript selenium angularjs protractor

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

<div my-directive my-unique-id="abc123"></div>
Run Code Online (Sandbox Code Playgroud)

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

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

<a title="myTitle" href="">Click me</a>
Run Code Online (Sandbox Code Playgroud)

我能够正确地找到元素 element(by.css('a[title="myTitle"]'))

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

And*_*ean 18

尝试使用xpath:

element(by.xpath('//div[@my-unique-id="abc123"]'))
Run Code Online (Sandbox Code Playgroud)

或仅由属性

element(by.xpath('//div[@my-unique-id]'))
Run Code Online (Sandbox Code Playgroud)


小智 5

尝试使用:

element(by.css('[my-unique-id="abc123"]'))
Run Code Online (Sandbox Code Playgroud)

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

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