page.evaluate() 未打印控制台消息

page.evaluate() is not printing console message

本文关键字:打印 控制台 消息 evaluate page      更新时间:2024-04-13

我也是Javascript的初学者,也是phantomjs的初学者。我正在尝试运行这个简单的控制台程序。但它不是打印This is page evaluating!.我也可以在控制台Page is opened successfully上看到此消息。

这是我的程序:

var page=require('webpage').create();
page.open("https://www.google.com/", function(){
    console.log("Page is opened successfully");
    page.evaluate(function(){
        console.log('This is page evaluating!');
    });
    phantom.exit();
});

完整输出:

页面已成功打开
您必须

注册到 page.onConsoleMessage 事件才能查看打印到控制台的页面上下文中的console.log(),因为页面上下文(page.evaluate() 内部(是沙盒化的,并且不会自动显示这些事件。

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

在调用包含您感兴趣的console.log()page.evaluate() 之前注册活动。大多数情况下,这应该在初始化全局变量后完成:

var page = require('webpage').create();
page.onConsoleMessage = function(msg) {
    console.log('remote> ' + msg);
};
page.open("https://www.example.com/", function(){
    console.log("Page is opened successfully");
    page.evaluate(function(){
        console.log('This is page evaluating!');
    });
    phantom.exit();
});

其他有用的事件包括:onResourceError、onError 和 onResourceError。