2016-10-28 2 views
0

Im Verwenden von CasperJS 0.10.1 SlimerJS 1.1.3 Firefox 45 auf CentOS 7.2 Im Versuch, die window.screen-Eigenschaften wie aus dem Code unten durch den Screenshot der Website zu sehen, sagt immer noch 640x480Einstellen der Bildschirmauflösung in CapserJS/SlimerJS

var casper = require('casper').create({ verbose: true, logLevel: 'debug' }); 
casper.on('page.initialized', function (page) { 
    page.evaluate(function() { 
     (function() { 
      window.screen = { 
       width: 1600, 
       height: 900 
      }; 
     }) 
    }); 
}); 
casper 
    .start() 
    .thenOpen('http://www.whatismyscreenresolution.com/') 
    .wait(5000, function() { this.capture('/cas/_test_screenres.jpg',{top:0,left:0,width:1600,height:900}); }) 
    .run(); 

Antwort

1

Sie können die Darstellungsgröße eingestellt:

casper.viewport(1600, 900); 

Oder noch mehr:

function on_init (page){ 
page.viewportSize = {width:1600,height:900} 
page.evaluate(function(){ 
window.screen = {width:1600,height:900,availWidth:1600,availHeight:900}; 
window.innerWidth=1600; window.innerHeight=900; window.outerWidth=1600; window.outerHeight=900; 
window.navigator = { 
plugins: {length: 2, 'Shockwave Flash': {name: 'Shockwave Flash', filename: '/usr/lib/flashplugin-nonfree/libflashplayer.so', description: 'Shockwave Flash 11.2 r202', version: '11.2.202.440'}}, 
mimeTypes: {length: 2, "application/x-shockwave-flash": {description: "Shockwave Flash", suffixes: "swf", type: "application/x-shockwave-flash", enabledPlugin: {name: 'Shockwave Flash', filename: '/usr/lib/flashplugin-nonfree/libflashplayer.so', description: 'Shockwave Flash 11.2 r202', version: '11.2.202.440'}}}, 
appCodeName: "Mozilla", 
appName: "Netscape", 
appVersion: "5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36", 
cookieEnabled: 1, 
languages: "en-US,en", 
language: "en", 
onLine: 1, 
doNotTrack: null, 
platform: "Linux x86_64", 
product: "Gecko", 
vendor: "Google Inc.", 
vendorSub: "", 
productSub: 20030107, 
userAgent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36", 
geolocation: {getCurrentPosition: function getCurrentPosition(){},watchPosition: function watchPosition(){},clearWatch: function clearWatch(){}}, 
javaEnabled: function javaEnabled(){return 0} };});}; 

casper.on('page.initialized', on_init); 

ist es nur eine einfache Realisierung des navigator Objekts: plugins könnte besser aussehen, aber normalerweise wird es nicht benötigt.

+2

Thx Igor. Nicht sicher, warum meine Funktion nicht funktionierte, aber ich testete Ihre Lösung und es funktionierte. Schön angelegt. Ich habe überall danach gesucht und so etwas komplettes nicht gefunden. Ist dies die vollständige Liste, oder können Sie mich auf eine vollständige Liste der Eigenschaften verweisen, die eingestellt werden können? –

+2

[http://pastebin.com/kSndS8jX](http://pastebin.com/kSndS8jX) –

+2

nett. Vielen Dank. –

Verwandte Themen