定位器基礎知識
定位器本身不返回可在 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
,具體取決於你的定位器。