评估PhantomJS似乎不工作(Evaluate in PhantomJS doesn't

2019-06-25 15:05发布

我有一个神奇的JavaScript的一个问题。 当我执行此代码:

var page = require('webpage').create();
var url="http://google.com";
page.open(url, function (status){
  if (status!== "success") {
    console.log("Fail to load: "+url)
  }else{
    console.log('1');
    page.evaluate(function() {
      console.log('2');
      });   
    console.log('3');
  }
phantom.exit();
});

控制台只有1和3,没有2谁能说为什么?

如果我将代码粘贴后的DOM操作例如 (但它从未执行)我有我的两个。 我也不曾忘记一些重要的事情?

Answer 1:

PhantomJS将无法登录.evaluate控制台消息()默认的语句。 只是包括

page.onConsoleMessage = function (msg) {
    console.log(msg);
};

有关详细信息,请参阅本页/更深入的例子:

http://code.google.com/p/phantomjs/wiki/QuickStart#Code_Evaluation



Answer 2:

从谷歌代码

从网页)的任何控制台消息,包括里面的代码评估(,默认不会显示。 要覆盖此行为,使用onConsoleMessage回调。



Answer 3:

如果你只是想选择日志才能通过,你可以回到你想要打印的值。

例如:

console.log(page.evaluate(function() {
    return '2';
});


文章来源: Evaluate in PhantomJS doesn't seem to work