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

VSO*_*VSO 28 javascript testing selenium angularjs protractor

我真的不明白$和$$命令的用途.我认为它们只是'by.css'的替代品,但为什么是$$?

<element id = "eId"></element>
Run Code Online (Sandbox Code Playgroud)

我想,鉴于上述情况,这些将是相同的:

element(by.css('#eId'));
Run Code Online (Sandbox Code Playgroud)

element($('#eId'));
Run Code Online (Sandbox Code Playgroud)

但是,第一个工作,第二个不工作.为什么,这三者有什么区别?

文档是帮助不大.它们似乎暗示"$"仅用于链接,例如element(by.css('#eId')).element($('#childId'));或"选择第一个元素,然后在第一个元素中选择第二个元素." 但是,我已经看到使用$来选择第一个元素的示例.

无论如何,这有很多文字"三者之间有什么区别(by.css,$和$$)?"

ale*_*cxe 34

$而且$$只是方便的捷径.

$("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));
};
Run Code Online (Sandbox Code Playgroud)

最初实现它的实际提交.