Кукловод js, не может выполнить страницу в $$ eval - PullRequest
0 голосов
/ 08 января 2020

Я видел этот вопрос, но не могу точно определить, что я делаю неправильно.

Ошибка: UnhandledPromiseRejectionWarning: Ошибка: Ошибка оценки: ReferenceError: страница не определена

const page = await browser.newPage();
await page.goto('https://example.com');

const getAllElements = await page.$$eval('.aclass', links => {
  links.map(link => {
    page.hover(link);
    page.screenshot({path: `example${link}.png`});
  })
})

Ожидаемое поведение: я go для example.com, затем я получаю все элементы .aclass. Возвратите их как «ссылки», затем я сопоставляю каждую ссылку, которая должна дать мне каждый элемент в ссылке. Затем я ожидаю, что смогу выполнить page.hover и page.screenshot. Однако здесь я получаю сообщение об ошибке, что страница не является Определено. Есть идеи, что я делаю не так?

1 Ответ

2 голосов
/ 09 января 2020
  1. hover и screenshot возвращает Promise.
  2. Не передавать страницу на page.$$eval. Вместо этого вы можете сделать следующее:
const page = await browser.newPage();
await page.goto('https://example.com');

const getAllElements = await page.$$('.aclass');
for (let [i, link] of getAllElements.entries()) {
    await link.hover();
    await link.screenshot({path: `example${i}.png`});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...