定位器基础知识

定位器本身不返回可在 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')

你可以使用的链数没有限制; 最后,你仍会收到一个 ElementFinderElementArrayFinder,具体取决于你的定位器。