2014-05-13 51 views
13

我使用Selenium WebDriver和Protractor在我的角度项目上运行e2e测试。 比方说,我有这样一个元素:量角器 - 如何通过自定义(非HTML)属性定位元素?

<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属性?

+0

的语法是正确的。你是否使用属性my-unique-id =“abc123”指令渲染为div?使用开发人员工具检查在浏览器中呈现的元素,并使用$('your-css-selector')对其进行测试。它应该在量角器中以相同的方式工作。 –

+0

同意@AndresD,最可能的原因是你的指令用它自己的模板替换它定义的当前元素。检查devtools中的元素,确保你有正确的CSS选择器。 –

回答

18

尝试使用XPath:

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

,或者仅被属性

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

真的非常感谢! –

相关问题