Phantom JS почему webpage.onConsoleMessage не ловит <script>в открытом html - PullRequest
0 голосов
/ 10 июля 2020

Для удобства в этом вопросе я определил contents const как мой HTML файл.

var webPage = require('webpage');
var page = webPage.create();

const contents = `
<!DOCTYPE html>
<html lang="en">
    <head>
        <script type="text/javascript">
         console.log("TEXT WITHIN HTML");
        </script>
    </head>
    <body></body>
</html>
`;

page.open(contents, function(status) {
    console.log('Status: ' + status);
    page.evaluate("function() { console.log('page.evaluated stuff')}");
});

page.onConsoleMessage = function(msg, lineNum, sourceId) {
    console.log('CONSOLE: ' + msg + ' (from line #' + lineNum + ' in "' + sourceId + '")');
};

При запуске $ phantomjs test.js:

$ phantomjs test.js 
Status: success
CONSOLE: page.evaluated stuff (from line # in "")

Он успешно ловит console.log, что I page.evaluate, но не тот, который находится в разделе <scripts> файла HTML.

Почему это так? Я не очень хорошо знаком с Phantom js.

...