一尘不染

量角器“ by.css()” vs“ $()”美元符号vs“ $$()”'Bling Bling'

selenium

我不太了解$和$$命令的用途。我以为它们只是’by.css’的替代品,但是为什么$$呢?

<element id = "eId"></element>

我认为,鉴于以上所述,这些将是等效的:

element(by.css('#eId'));

element($('#eId'));

但是,第一个有效,第二个无效。为什么,这三者有什么区别?

文档没有什么帮助。他们似乎暗示“
$”仅用于链接,例如element(by.css('#eId')).element($('#childId'));或“选择第一个元素,然后选择第一个元素内的第二个元素”。但是,我看到了使用$来选择第一个元素的示例。

无论如何,“这三个(by.css,$和$$)之间的区别是什么?”的文字很多。


阅读 280

收藏
2020-06-26

共1个答案

一尘不染

$并且$$只是方便的快捷方式。

$("selector")是的替代方案element(by.css("selector"))

$$("selector")是的替代方案element.all(by.css("selector"))


仅供参考,引用源代码

ElementFinder.prototype.$ = function(selector) {
  return this.element(webdriver.By.css(selector));
};

ElementArrayFinder.prototype.$$ = function(selector) {
  return this.all(webdriver.By.css(selector));
};

最初实现它的实际提交

2020-06-26