Транскаватор "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, $и $$)?"
Ответы
Ответ 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));
};
И фактическая фиксация, которая изначально сделала это.