我是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 is opened successfully
答案 0 :(得分:1)
您必须注册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,onError和onResourceError。