** Обновлен для работы с puppeteer v1.4.x
Если все, что вам нужно, это «зарегистрировать прогресс страницы. Оценить на консоли», тогда просто
const page = await browser.newPage();
page.on('console', consoleObj => console.log(consoleObj.text()));
И используйте console.log
в page.evaluate
как обычно, больше никаких зависимостей не требуется.
Также см. этот приятный твик для удаления нескольких раздражающих предупреждений из журнала.
Предоставлено несколько вещей
этот небольшой скрипт поможет:
<script type="text/javascript">
window.__defineSetter__("x", function(value) { console.trace(); });
x = 1;
</script>
Вы получите трассировку выполненного кода перед этим назначением.
Это может привести к сбою чтобы сообщить о некоторых ситуациях, взгляните на JSLint . Загрузите все свои JS-файлы прямо здесь и запишите их.
Вот решение, которое я использовал, изменив решение Ионута Г. Стэна:
window.__defineSetter__("name", function(value) {
if (value=="div") {
debugger;
}
});
Я использовал отладчик
вместо console.trace ()
, чтобы я мог остановиться и посмотреть на него в середине выполнения. С помощью console.trace ()
я получил миллиард операторов трассировки из-за того, что эта строка выполнялась много раз.
Утечка в области видимости оказалась скрытой в Dojo, где Dojo устанавливает для этой переменной имя обработанный элемент.
Просмотрите свою веб-страницу в браузере SeaMonkey (я использую версию 1.1.16) и посмотрите на консоль ошибок, вы увидите сообщение этого типа для каждого присвоения необъявленной переменной:
Warning: assignment to undeclared variable x
Source File: http://....js
Line: ##