如何使CasperJS与Browserify一起使用?

时间:2015-06-23 19:06:27

标签: javascript node.js phantomjs casperjs browserify

我已成功使用casperjs来模拟浏览,废弃网站和制作屏幕截图。

我也需要为使用browserify构建的网站执行此操作,但我无法让casperjs评估其网页的JavaScript代码。

例如,假设我想制作此浏览器演示页面的屏幕截图:http://requirebin.com/embed?gist=maxogden/9576799

这是理论上应该的代码,但不是:

// initialize casper
var casper = require('casper').create({
    verbose: true,
    logLevel: 'debug',
    pageSettings: {
        userAgent: 'Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0'
    }
});

// print out all the messages in the headless browser context
casper.on('remote.message', function(msg) {
    this.echo('remote message caught: ' + msg);
});

// print out all the messages in the headless browser context
casper.on("page.error", function(msg, trace) {
    this.echo("Page Error: " + msg, "ERROR");
});

var url = 'http://requirebin.com/embed?gist=maxogden/9576799';

// start browsing
casper.start(url, function() {
    this.viewport(1600, 900);
    this.wait(2000, function() { // <-- let's wait a long time, to be sure the js is executed...
        this.capture('screenshot.png'); // <-- Proof of the error
    });
    this.capture('screenshot.png'); // <-- Proof of the non (browserify) js evaluation
});

casper.run();

运行它时(casperjs errorsample.js),会抛出以下错误:

Page Error: ReferenceError: Can't find variable: require

我怀疑来自require()browserifycasperjs的不同nodejs函数之间存在冲突,但我不确定。

有没有人有解决方案或解决方法?

0 个答案:

没有答案