Я пытаюсь научить кукловода чистить сайты, и самой сложной задачей для меня было выяснить, как кодировать реакцию на динамические всплывающие окна, которые могут возникнуть на основе взаимодействия с пользователем.
Например, для удаления стеклянной двери, когда вы не вошли в систему, часто появляется окно «Всплывающее окно входа в систему» после прочтения слишком большого количества отзывов, и я хотел бы попробовать
- Если скребок работает как обычно, если всплывающее окно не появляется,
- и имеют специальный ответ (либо вход в систему, либо выход из всплывающего окна), если всплывающее окно действительно появляется.
page.on
(как описано здесь ) кажется, что он мог бы сделать это, но как мне заставить его обрабатывать <div class="Login window popup">
, появляющийся в случайный момент?
const puppeteer = require("puppeteer");
// puppeteer usage as normal
puppeteer.launch({ headless: false }).then(async browser => {
const page = await browser.newPage();
const navigationPromise = page.waitForNavigation();
await page.setViewport({ width: 1440, height: 794 });
var data = [];
await page.goto('https://www.glassdoor.com/Reviews/Grubhub-Reviews-E419089.htm');
// Perform some actions...
// Code dealing with popup
page.on('popup_element_handle', async dialog => {
// Log in actions...
});
})
Большое спасибо за любые советы заранее.