Превышен тайм-аут кукловода на 3000 мс при нажатии кнопки, которая фильтрует результаты - PullRequest
0 голосов
/ 02 мая 2020

Мой код:

const puppeteer = require("puppeteer");

(async () => {
  try {
    const browser = await puppeteer.launch();

    const page = await browser.newPage();
    await page.goto("https://www.genglobal.org/member-directory");

    await page.type("#edit-field-first-name-value", "Abbas");
    await page.type("#edit-field-last-name-value", "AL ASMAR");

    await page.click(".agree-button.eu-cookie-compliance-secondary-button");

    const [submitSearch] = await Promise.all([
      page.waitForNavigation(),
      page.click("#edit-submit-member-directory"),
    ]);

    await page.screenshot({ path: "screenshot.png" });

    await browser.close();
  } catch (error) {
    console.log(`this is the ${error}`);
  }
})();

Ошибка:

this is the TimeoutError: Navigation timeout of 30000 ms exceeded

Чего я пытаюсь достичь:

Введите имя и фамилию в поле соответствующие поля ввода и нажмите кнопку FILTER. Однако, когда я отправляю форму, нажимая кнопку FILTER, она выдает вышеупомянутую ошибку. Я не понимаю, почему ...

Ответы [ 2 ]

2 голосов
/ 03 мая 2020

Я решил эту проблему с помощью приведенных ниже команд.

page.setDefaultNavigationTimeout(100000);

для установки времени навигации 10 секунд.

С уважением

2 голосов
/ 02 мая 2020

Если я правильно понимаю, page.waitForNavigation() касается изменения URL, тогда как кнопка фильтра просто использует AJAX запросов и изменяет DOM. Вместо этого вы можете попробовать page.waitForResponse() и page.waitForSelector().

...