Подтвердить что ты не робот

Транскаватор "by.css()" vs "$()" Долларовый знак против "$$()" 'Bling Bling'

Я действительно не понимаю, для чего нужны команды $и $$. Я думал, что это просто замена для 'by.css', но почему $$?

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

Я думал, что с учетом вышеизложенного они будут эквивалентны:

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

и

element($('#eId'));

Однако первый работает, а второй - нет. Почему, какая разница между тремя?

docs мало помогают. Они, по-видимому, подразумевают, что "$" относится только к цепочке, например. element(by.css('#eId')).element($('#childId')); или "Выберите первый элемент, а затем выберите второй элемент в первом элементе". Тем не менее, я видел примеры с $, которые используются для выбора первого элемента.

Во всяком случае, много текста для "В чем разница между тремя (by.css, $и $$)?"

4b9b3361

Ответ 1

$ и $$ являются просто удобными ярлыками.

$("selector") является альтернативой для element(by.css("selector")).

$$("selector") является альтернативой для element.all(by.css("selector")).


FYI, цитата из исходный код:

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

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

И фактическая фиксация, которая изначально сделала это.