我试图(没有成功)通过事件将自定义标头添加到请求中:
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
对象的事件)中添加请求标头有什么选择? 最佳答案
在最新版本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
您可以执行的两个最简单的操作是
将可以使用的有效phantomjs添加到PATH(casper会使用它)
要么
使用有效的phantomjs版本覆盖casperjs\node_modules\phantomjs\lib\phantom
中的可执行文件
要么
只是让npm为您下载版本
最后一点的步骤是:
通过从命令行调用phantomjs --version
来查找适用于phantomjs的版本
在命令行中转到以下文件夹
C:\ Users \ someuser \ AppData \ Roaming \ npm \ node_modules \ casperjs
安装您的工作版本(我实际上不知道哪个版本有效,因此我在这里使用1.9.0)
npm安装[email protected]
您可以通过调用npm show phantomjs
检查可用的版本。
关于javascript - 通过事件添加请求 header :CasperJS中的page.resource.requested,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24285126/