我已成功使用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()
,browserify
和casperjs
的不同nodejs
函数之间存在冲突,但我不确定。
有没有人有解决方案或解决方法?