Преобразование ElementHandle в элемент DOM с помощью кукловода? - PullRequest
0 голосов
/ 31 октября 2018

Вот как я в настоящее время получаю каждое DOM свойство от ElementHandle:

 let section: ElementHandle = await page.waitForSelector(".selector-list li");
 let tagName = await section.$eval('a', (e) => e.tagName);

Но здесь это tagName. Что если я захочу осмотреть другие объекты?

Я не хочу писать $eval для каждого свойства.

Вопрос:

Как я могу преобразовать ElementHandle в объект Dom, чтобы я мог просмотреть все свойства? Я хочу получить A как объект Dom.

1 Ответ

0 голосов
/ 31 октября 2018

Лучшим способом было бы выполнить код на странице через page.evaluate и вернуть результаты. Таким образом, вы можете вернуть массив со значениями:

const result = await page.evaluate(() => {
    const elements = document.querySelectorAll(".selector-list li");
    // do something with elements, like mapping elements to an attribute:
    return Array.from(elements).map(element => element.tagName);
});

result будет тогда массивом со значениями атрибута tagName каждого элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...