Я пытаюсь собрать данные из таблицы веб-сайта с помощью Puppeteer. Однако, когда таблица содержит более 100 записей, она разбивает ее по нескольким таблицам и имеет стрелки для навигации. После того, как я соскребу всю информацию из первых 100 записей на странице 1 таблицы, я хочу щелкнуть следующую стрелку «>>» и go для следующих 100 записей, чтобы очистить их и так далее. Но стрелка «>>» при нажатии в обычном браузере не приводит к новой странице, а просто обновляет содержимое той же таблицы.
Я проверил HTML и увидел, что кнопка ">>" завернута в
<a href="/DailyReport?page=2" rel="next">
Я попытался получить элемент и щелкнуть по нему:
const nextButton = await page.$('ul.wrapper > li > a[rel=next]');
await nextButton.click();
await page.waitForSelector('.dataTable');
... но это не работает. Я подтвердил, что nextButton
был элемент, который я хотел получить, зарегистрировав внешний HTML.
Я также попытался просто
await page.goto('www.originaldomain.com/DailyReport?page=2')
, но это не работает, потому что это пытается загрузить новую страницу с этим URL (не найдено), вместо того, чтобы просто обновить один элемент dataTable
.
Похоже, что при обычном использовании маршрутизация на /DailyReport?page=2
вызывает некоторые JavaScript для обновления элементов таблицы. Как мне повторить это нажатие кнопки «Следующая страница», чтобы обновить таблицу с помощью кукловода?
РЕДАКТИРОВАТЬ: Опечатка от waitForElement(...)
до waitForSelector(...)