定位器基础知识
定位器本身不返回可在 Protractor 中与之交互的元素,它们只是指示 Protractor 如何找到元素的指令。
要访问元素本身,请使用以下语法:
element(locator);
element.all(locator);
注意:在对元素执行操作之前,实际上不会访问元素 - 也就是说,在元素上调用诸如 getText()
之类的操作时,Protractor 实际上只会检索元素。
如果要使用定位器仅选择一个元素,请使用 element
。如果你的定位器指向多个元素,element
将返回找到的第一个元素。element
返回 ElementFinder
。
如果要使用定位器选择多个元素,element.all
将返回找到的所有元素。element.all
返回一个 ElementArrayFinder
,并且可以使用不同的方法访问数组中的每个元素 - 例如,map
函数。
element.all(locator).map(function(singleElement) {
return singleElement.getText();
}
});
链接定位器
你可以链接多个定位器以选择复杂应用程序中的元素。你不能直接链接 locator
对象,你必须链 ElementFinders
:
element(by.repeater('movie in movies').element(by.linkText('Watch Frozen on Netflix')
你可以使用的链数没有限制; 最后,你仍会收到一个 ElementFinder
或 ElementArrayFinder
,具体取决于你的定位器。