AngularJS E2E:按标签名称查找元素

时间:2014-11-16 10:33:45

标签: jquery angularjs element protractor angularjs-e2e

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

我在我的代码中尝试了这个:

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

我的HTML代码是:

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

但永远不会点击该按钮。 我不想使用类,ID或奇怪的选择器。我想我只是遗漏了一些东西,但是我找不到表现形式(关于“发现者”)。

感谢您的帮助,

2 个答案:

答案 0 :(得分:3)

您将AngularJS的angular.element类与同名的Protractor全局函数element混淆。

量角器创建了一些全局函数,例如browserelementbyprotractor

element是一个函数,而不是一个对象。因此,他们没有像find(..)这样的属性方法。 element函数将选择器对象作为参数。要创建选择器对象,必须使用全局by对象。此对象包含许多方便的选择器函数,例如idmodelbinding等等。

如果要使用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

答案 1 :(得分:2)

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

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