2014-11-16 62 views
1

根据此链接:https://docs.angularjs.org/api/ng/function/angular.element,方法“find()”允许通过标记名称查找HTML元素。AngularJS E2E:通过标记名称查找元素

我在我的代码试过这样:

element.find('button').click(); 

而我的HTML代码:

<button ng-click="getMessage()">Request service as {{name}}</button> 

但按钮从来没有点击。 我不想使用类,id或奇怪的选择器。我想我只是错过了一些东西,但我无法找到具有说服力的文章(关于“发现者”)。

感谢你的帮助,

+0

什么是'element'在你的背景?你能显示一些代码吗? – tasseKATT

回答

3

你是混乱AngularJS的angular.element类量角器全球的同名函数element

量角器创建一些全局函数,如browser,element,byprotractor

element是一个函数,而不是一个对象。因此,他们没有财产方法,如find(..)element函数将选择器对象作为参数。要创建选择器对象,您必须使用全局对象by。此对象包含一些方便的选择器函数,如id,model,binding等。

如果您要使用jQuery/CSS选择器语法。您可以使用by.css()函数。

示例;

element(by.css('button')).click(); 

这将找到第一个button标记并单击它。使用element.all(...)找到他们所有。

您也可以缩小这个只有结合范围变name

element(by.css('button')).element(by.binding('name')).click() 

更多定位器按钮:

https://github.com/angular/protractor/blob/master/docs/locators.md

+0

感谢您的参考。是的,我把angular.element和protractor.element混淆了 – Neozaru

2

也许会有所帮助你的情况:

element(by.partialButtonText('Request service as')); 
+0

这可以满足我的需求。谢谢 – Neozaru

相关问题