我真的不明白$和$$命令的用途。我认为它们只是'by.css'的替代品,但为什么是$$?
<element id = "eId"></element>
我想,鉴于上述情况,这些都是等价的:
element(by.css('#eId'));
和
element($('#eId'));
然而,第一个有效,第二个没有。为什么,三者之间有什么区别?
docs没什么帮助。他们似乎暗示“$”仅用于链接,例如element(by.css('#eId')).element($('#childId'));
或“选择第一个元素,然后选择第一个元素中的第二个元素。”但是,我看到过使用$来选择第一个元素的例子。
无论如何,这有很多文字“三者之间有什么区别(by.css,$和$$)?”
答案 0 :(得分:30)
$("selector")
是element(by.css("selector"))
的替代方案。
$$("selector")
是element.all(by.css("selector"))
的替代方案。
仅供参考,引自source code:
ElementFinder.prototype.$ = function(selector) {
return this.element(webdriver.By.css(selector));
};
ElementArrayFinder.prototype.$$ = function(selector) {
return this.all(webdriver.By.css(selector));
};
最初实现它的actual commit。