Отладка: - У Puppeteer есть различные события страницы, используемые для целей отладки, здесь. - Puppeteer недавно добавил трассировку стека ASYNC, чтобы вы могли более точно отслеживать ошибки.
Генерация событий. Вы можете использовать модуль events
по умолчанию и exposeFunction
для создания собственной системы событий.
Обратитесь к следующему фрагменту кода, в котором есть все упомянутые методы,
const EventEmitter = require("events");
const myEventTracker = new EventEmitter();
myEventTracker.on("some-event", function(...data) {
// do something on event
console.log(data);
});
// usage in puppeteer
const puppeteer = require("puppeteer");
puppeteer.launch({ headless: false }).then(async browser => {
const page = await browser.newPage();
// normal console events forwarded to node context
page.on("console", msg => console.log(msg.text()));
// we can use this to make our own reverse events
myEventTracker.on("change-viewport", async function(data) {
// do something on event
await page.setViewport({ width: data.width, height: data.height });
});
// or we can expose the emit function
await page.exposeFunction("emitter", (...data) =>
myEventTracker.emit(...data)
);
// emit however we want
await page.evaluate(async => {
emitter("change-viewport", { width: 1200, height: 800 });
emitter("some-event", "inside browser");
});
await page.goto("http://viewportsizes.com/mine/");
// await browser.close();
});
Это станет сообщением в блоге, если мы захотим все объяснить, в противном случае я обновлю свой ответ.
person
Md. Abu Taher
schedule
08.10.2018