не может найти контекст с указанным идентификатором undefined - PullRequest
0 голосов
/ 23 мая 2018

это мой первый пост с вопросом, пожалуйста, будьте добры.

Я кодирую около года и играюсь с кукловодом и безголовым хромом.

Я пытаюсьсоздайте небольшое приложение, которое выполняет поиск изображений в Google по случайному слову и выбирает / щелкает первое изображение результата.(без причины, просто идея)

Я успешен, пока код не пытается выбрать изображение результата, и он выдает следующую ошибку в моем терминале:

UnhandledPromiseRejectionWarning: Необработанное отклонение обещания (отклонениеid: 1): Ошибка: ошибка протокола (Runtime.callFunctionOn): не удается найти контекст с указанным идентификатором undefined

вот мой код:

const pup = require('puppeteer');
const random = require('random-words');
const url = 'http://images.google.com';

(async() => {
  const browser = await pup.launch({headless: false});
  const page = await browser.newPage();

  await page.goto(url);
  const searchBar = await page.$('#lst-ib');
  await searchBar.click();
  await page.keyboard.type(`${random()}`);
  const submit = await page.$('#mKlEF');
  await submit.click();
  await page.keyboard.type(random());
  await page.keyboard.press('Enter');
  const pic = await page.evaluate(() => {
    return document.querySelectorAll('img');
  });

  pic.click();
})();

помогите мне, пожалуйста, и спасибо!

1 Ответ

0 голосов
/ 23 мая 2018

document.querySelectorAll('img') не сериализуем, поэтому он возвращает неопределенное значение (см. Этот выпуск в качестве ссылки)

Пожалуйста, используйте что-то вроде: (зависит от того, какой элемент вы хотите щелкнуть)

await page.$$eval('img', elements => elements[0].click());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...