Журнал кукловода внутри page.evaluate

Да, есть ограничения в зависимости от уровня доступа, который вы используете при открытии файлов. Вы можете использовать _getmaxstdio, чтобы найти пределы и _setmaxstdio, чтобы изменить пределы.

23
задан Alex Arvanitidis 13 September 2017 в 13:11
поделиться

3 ответа

** Обновлен для работы с puppeteer v1.4.x

Если все, что вам нужно, это «зарегистрировать прогресс страницы. Оценить на консоли», тогда просто

const page = await browser.newPage();

page.on('console', consoleObj => console.log(consoleObj.text()));

И используйте console.log в page.evaluate как обычно, больше никаких зависимостей не требуется.

Также см. этот приятный твик для удаления нескольких раздражающих предупреждений из журнала.

36
ответ дан Vaviloff 13 September 2017 в 13:11
поделиться

Многие ответы, представленные ранее, больше не работают сегодня. Также одна вещь, которая может быть очень раздражающей на некоторых страницах, это «предупреждающие» сообщения, которые загрязняют вывод. Один из способов исправить это - отфильтровать по типу сообщения. Следующий код помогает уменьшить шум и работает с текущими версиями Puppeteer:

const browser = await puppeteer.launch();
const page = await browser.newPage();
page.on('console', consoleMessageObject => function (consoleMessageObject) {
    if (consoleMessageObject._type !== 'warning') {
        console.debug(consoleMessageObject._text)
    }
});

await page.goto('https://google.com');
const result = await page.evaluate(() => {
    console.log('Browser scope.');
    return 'Normal scope.';
});
console.log(result)
5
ответ дан Nicolas Bouvrette 13 September 2017 в 13:11
поделиться

Мне нравится ответ @ Vaviloff , но вы будете регистрировать весь объект ConsoleMessage, когда вам может понадобиться только текст. Таким образом, я лично использую следующее:

const EOL = require('os').EOL;
const _page = await browser.newPage();

_page.on('console', _fCleanLog);

function _fCleanLog(ConsoleMessage) {
    console.log(ConsoleMessage.text + EOL);
}
2
ответ дан John Vandivier 13 September 2017 в 13:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: