Перейти к основному содержимому

$$

Обзор

Используйте команду $$ вместо findElements как более краткую команду, чтобы получить несколько элементов на странице в области видимости элемента. Эта команда похожа на команду browser.$$(), и отличается только тем, что поиск элементов будет осуществляться среди потомков (children) текущего элемента.

к сведению

Подробнее о том, как выбрать определенные элементы, смотрите в рецепте «Как использовать селекторы».

Использование

await browser.$(selector).$$(subSelector);

Параметры команды

ИмяТипОписание
subSelectorString или Function или MatcherСелектор, или JS-функция, или Matcher для получения множества элементов.

Примеры использования

index.html

<ul id="menu">
<li>
<a href="/">Home</a>
</li>
<li>
<a href="/">Developer Guide</a>
</li>
<li>
<a href="/">API</a>
</li>
<li>
<a href="/">Contribute</a>
</li>
</ul>

$$.js

it("should get text a menu link", async ({ browser }) => {
const text = await browser.$("#menu");

console.log(await text.$$("li")[2].$("a").getText()); // выведет: "API"
});

it("should get text a menu link - JS Function", async ({ browser }) => {
const text = await browser.$("#menu");

console.log(
await text
.$$(function () {
// Использовать здесь стрелочную функцию нельзя.
// Это Element – https://developer.mozilla.org/en-US/docs/Web/API/Element
// в этом конкретном примере – это HTMLUListElement
//
// TypeScript-пользователи могут сделать что-нибудь вроде:
// return (this as Element).querySelector('li')
return this.querySelectorAll("li"); // Element[]
})[2]
.$("a")
.getText(),
); // выведет: "API"
});

Связанные команды