根据此链接: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或奇怪的选择器。我想我只是遗漏了一些东西,但是我找不到表现形式(关于“发现者”)。
感谢您的帮助,
答案 0 :(得分:3)
您将AngularJS的angular.element
类与同名的Protractor全局函数element
混淆。
量角器创建了一些全局函数,例如browser
,element
,by
和protractor
。
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
答案 1 :(得分:2)
也许它会对你的情况有所帮助:
element(by.partialButtonText('Request service as'));