gpt4 book ai didi

javascript - page.evaluate() 不打印控制台消息

转载 作者:行者123 更新时间:2023-12-03 10:42:57 24 4
gpt4 key购买 nike

我也是 Javascript 以及 phantomjs 的初学者。我正在尝试运行这个简单的控制台程序。但它没有打印 This is page reporting!。我也可以在控制台上看到此消息页面已成功打开

这是我的程序:

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 is opened successfully

最佳答案

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

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

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

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 , onErroronResourceError .

关于javascript - page.evaluate() 不打印控制台消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28694897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com