鉴于我有 elmFinder 变量:
var elmFinder = element(by.css('.thing'));
如果我需要取回webdriver.Locator,a.k.a定位策略怎么办?即。
elmFinder.??? //=> by.css('.thing')
如果它存在,我会照看函数???
。
更新
此功能已merged,我们现在可以:
elmFinder.locator();
答案 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');
你可以按照自己的意愿去做。