web-dev-qa-db-ja.com

分度器 "by.css()" vs "$()"ドル記号vs "$$()" 'Bling Bling'

$コマンドと$$コマンドの目的がよくわかりません。 'by.css'の代わりにすぎないと思いましたが、なぜ$$なのですか?

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

上記を考えると、これらは同等だと思いました。

_element(by.css('#eId'));
_

そして

_element($('#eId'));
_

ただし、最初のものは機能し、2番目のものは機能しません。なぜ、3つの違いは何ですか?

docs はほとんど役に立ちません。それらは、「$」がチェーン専用であることを暗示しているようです。 element(by.css('#eId')).element($('#childId'));または「最初の要素を選択してから、最初の要素内の2番目の要素を選択します。」ただし、最初の要素を選択するために$が使用されている例を見てきました。

とにかく、それは「3つ(by.css、$、$$)の違いは何ですか?」のテキストがたくさんあります。

28
VSO

_$_ および _$$_ は便利なショートカットです。

$("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));
};
_

そして 実際のコミット 最初にそれを実現させました。

34
alecxe