请问有人能帮我理解在这种情况下WebDriverJS/Protractor是如何工作的吗?
function MyPageObject(buttonElementFinder) {
this.getButtonByIndex = function(index) {
return {
myButton: buttonElementFinder.get(index)
}
}
}
1. describe('My button', function() {
2.
3. it('should contain the text foo', function() {
4. var myElementFinder = element.all(by.css('.foo'));
5. var pageObject = new MyPageObject(myElementFinder);
6. var button = pageObject.getButtonByIndex(0);
7. expect(button.text()).toBe('foo');
8. });
9.
10. });
由于
ElementFinder
的.get
方法,第6行是否添加了一个操作到WebDriverJS控制流中?我猜测
expect
在第7行也会向控制流中添加另一个项目。
编辑:我已更新代码以使用element.all
。
ElementFinder
上的get()
方法是用来做什么的?我不记得在ElementFinder
上有这个方法。谢谢。 - alecxeElementArrayFinder
(element.all()
的结果)。 - alecxeelement.all
。这个遗漏是在将我的实际代码转换为此问题的简化版本时出现的错误。 - Ben Aston