克隆元素发现者

Cloning element finders

在研究可用的 ElementFinderElementArrayFinder 方法时,我注意到有一个 clone() method 已简要记录:

Create a shallow copy of ElementFinder.

据我了解,clone() 并非来自 WebdriverJS,而是一个特定于量角器的函数。我不明白的是 为什么要在测试中克隆元素查找器或元素查找器 "array"clone() 涵盖哪些用例?


我查看了 protractor source code to find example usages, but found only the underlying change set,这对获得清晰的图片没有帮助。

这里介绍了克隆:https://github.com/angular/protractor/issues/1303。 老实说,现在我想起来了,引入它是一个错误,因为它没有任何实用价值。

最初,担心后续的 elementFinder 链会影响之前的链:

var outerElement = element(by.abc...).all(by.def...).first().element(by.ghi...);
var outerText = outerElement.getText();
var innerElement = innerElement.element(by.xyz...);
// Now that I chained more things onto outerElement, is the original outerElement still behaving the same as before? (i.e. is outerText the same as outerElement.getText() still)