我知道如何禁用图片和插件,但似乎没有明显的选项来禁用CasperJS中的css。
任何人都知道这是如何运作的?
答案 0 :(得分:8)
假设您要禁止加载所有外部样式表,可以通过中止加载css文件的请求来执行此操作,这可以通过将函数分配给options.onResourceRequested
来完成:
var casper = require('casper').create();
casper.options.onResourceRequested = function(C, requestData, request) {
if ((/https?:\/\/.+?\.css/gi).test(requestData['url']) || requestData['Content-Type'] == 'text/css') {
console.log('Skipping CSS file: ' + requestData['url']);
request.abort();
}
}
为避免使用内联样式表,我唯一的想法是在页面加载后立即使用一些JavaScript删除所有样式。
如果你将SlimerJS与CasperJS一起使用,那么几乎可以肯定Gecko引擎中有一个禁用CSS的选项(基于Web Developer插件有一个选项)。
答案 1 :(得分:0)
这对我有用
//filter css
casper.options.onResourceRequested = function(C, requestData, request) {
var accept = requestData.headers[0];
if ( accept.value.indexOf('text/css') !== -1 ) {
console.log('Skipping CSS file: ' + requestData.url);
request.abort();
}
};