我尝试(没有成功)通过事件向请求添加自定义标头:
casper.on("page.resource.requested",function(requestData,request){...}
类似的东西:
casper.on("page.resource.requested",function(requestData,request){
request.setHeader("X-myHeader", "123");
}
我以为我能做到这一点,因为在PhantomJS中你可以写:
page.onResourceRequested = function(requestData, networkRequest) {
networkRequest.setHeader("X-myHeader", "123");
}
在casper
对象的事件中添加请求标头有哪些选择?
答案 0 :(得分:3)
在最新版本1.9.7中,存在错误request in onResourceRequested has no setHeader function #12264。您需要使用早期版本的phantomjs。
之所以产生差异,是因为您在命令行和casperjs中使用了不同版本的phantomjs。在Windows中,您可以在此文件夹中找到casper的幻像:
C:\Users\someuser\AppData\Roaming\npm\node_modules\casperjs\node_modules\phantomjs
您可以做的两件最简单的行动是
添加可用于PATH的工作幻像(casper将使用它)
OR
使用工作的phantomjs版本
覆盖casperjs\node_modules\phantomjs\lib\phantom
内的可执行文件
OR
让npm为您下载该版本
最后一点的步骤是:
通过从命令行调用phantomjs --version
在命令行
中切换到以下文件夹C:\Users\someuser\AppData\Roaming\npm\node_modules\casperjs
安装你的工作版本(我实际上并不知道哪一个有效,所以我在这里使用1.9.0)
npm install phantomjs@1.9.0-x
您可以致电npm show phantomjs
来查看可用的版本。