[英]PhantomJS Change JS src before he starts loading
我试图更改Javascript src ,以便获得用于测试某些Javascript的“开发环境”。
( 显然,我无法建立一个真正的开发环境,我无法在开发环境上镜像此网站 )。
因此,我正在考虑使用PhantomJS操纵Dom并使用CasperJS测试javascript。 我想转换(例如)此脚本
<script type="..." language="..." src="production_path/source.js"></script>
进入这个
<script type="..." language="..." src="dev_path/source.js"></script>
在脚本开始加载之前。
我正在尝试
casper.start("http://www.example.com/",function(status){
var scripts = document.getElementsByTagName('script');
casper.each(scripts,function(self,my_script){
//here i would rewrite script url
});
});
casper.run();
但这不起作用。 恐怕我必须等待一些东西,但是我不明白是什么。
退后一步,可以将您的问题重新表述为:当PhantomJS尝试加载“ production_path / source.js”时,如何使其加载“ dev_path / source.js”?
如果是这样,编写一个onResourceRequested
处理程序,并使用resourceRequest
对象的changeUrl
函数。
将会是这样的:
casper.page.onResourceRequested = function(requestData, networkRequest) {
if(requestData.url == 'production_path/source.js'){
console.log("Changing request from production to dev for source.js");
networkRequest.changeUrl('dev_path/source.js');
}
};
当然,在实际情况下,我会使用正则表达式替换(因为我希望可以替换多个URL)。
(未经测试,所以让我知道它是否不起作用,我将对其进行仔细研究。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.