从elementFinder中取回webdriver.Locator

时间:2014-05-02 21:51:39

标签: protractor angularjs-e2e

鉴于我有 elmFinder 变量:

var elmFinder = element(by.css('.thing'));

如果我需要取回webdriver.Locator,a.k.a定位策略怎么办?即。

elmFinder.??? //=> by.css('.thing')

如果它存在,我会照看函数???

更新

此功能已merged,我们现在可以:

elmFinder.locator();

2 个答案:

答案 0 :(得分:3)

<强>更新

此功能已merged,我们现在可以:

elmFinder.locator();

旧答案: 你不能。元素查找器不保留对定位器的引用:

https://github.com/angular/protractor/blob/master/lib/protractor.js#L103

答案 1 :(得分:2)

我通常做的是将选择器存储在它自己的var中,然后将该字符串放入选择器中,这样我就可以互换使用:

var cssThingSelector = '.thing';
var elem = $(cssThingSelector);

类似的东西。

修改

我还要补充一点,你可以嵌入来自selenium webelement对象的findElement个调用。

因此,如果.thing网络元素的内部html中有另一个项目(例如,span标记),则可以嵌套另一个findElement调用:

var spanElem = elem.$('span');

你可以按照自己的意愿去做。