javascript - 如何在casperjs的evaluate函数中输出log
大家讲道理
大家讲道理 2017-04-10 14:35:34
[JavaScript讨论组]

casperjs的evaluate函数中使用casper.log就无法输出,代码如下

var casper = require('casper').create({
    'verbose': true,
    'logLevel': 'debug'
});

casper.start('http://www.baidu.com/', function() {
    this.evaluate(function() {
        this.log('asd', 'error'); // 这一条无法输出
    });
}); 

大概的原因我也知道,应该是evaluate中的东西相当于在一个sandbox中执行,要与外界交互是只能通过特定的接口的

但这样造成我写程序的不便,因为在evaluate函数中就可能发生一些不可预期的情况,而我想把它log下来

我目前有两种解决方案

  1. evaluate函数返回时添加一个errorCode,从而判断发生了什么错误或者warning
  2. evaluate中使用console.log,并在外面监听remote.message,但这样等于多了一个日志流出来,也是十分不便

第二种解决方法的代码

casper.start('http://www.baidu.com/', function() {
    this.evaluate(function() {
        console.log('asd');
    });
}); 

casper.on('remote.message', function(msg) {
    this.log(msg, 'info');
});

所以有什么更好的解决方案吗?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号