2017-02-23 1 views
0

J'utilise CasperJS 1.1.0 avec PhantomJs 2.0. J'utilise le serveur Linux. J'ai un script, essayant de courir et de prendre des screenshots. Cette capture d'écran est très bien pour le serveur local ni pour le live. Capture d'écran du site ressemblera à ceci:capture d'écran de casperjs renvoyant des cases carrées vides. S'il vous plaît dites-moi la solution possible pour obtenir le caractère au lieu de boîtes

https://i.stack.imgur.com/dJe4L.png 

Ainsi, au lieu des lettres réelles, il rend des boîtes carrées.

var casper = require('casper').create({ 
    verbose: true, 
}); 
casper.options.waitTimeout = 40000; 
casper.options.viewportSize = {width: 1200, height: 768}; 
phantom.cookiesEnabled = true; 
casper.start('http://domain.com/', function() { 
    this.wait(5000, function() { 
     this.echo(this.getTitle()); 
     this.capture("screenshot.png"); 
    }); 
}); 
casper.run(function() { 
    this.exit(0); 
}); 

Veuillez me dire où je me trompe.

Répondre

1

Je voudrais utiliser waitForSelector sur les éléments que vous voulez des captures d'écran, plutôt que l'attente dure de 5 secondes. Envisagez d'ajouter

verbose: true 
waitTimeout:20000 

Ce qui vous donnera une limite d'attente de 20 secondes, plus longue que les 5 secondes par défaut. Ensuite, au lieu de votre attente actuelle, utilisez quelque chose comme:

this.waitForSelector('img', function() { 
    this.capture('test.png') 
} 

Vous pouvez changer le sélecteur img être quelque chose de plus spécifique, mais en attendant que les images elles-mêmes à la charge est une façon assez certaine de faire en sorte qu'ils seront capturé. La raison pour laquelle nous avons changé le délai d'attente à 20 secondes est au cas où leur site prend un peu plus de temps pour charger leurs images :)

Faites-moi savoir si cela ne fonctionne pas, heureux de poursuivre. J'aurai besoin d'exemples du site et de l'image que vous aimeriez.

EDIT: Peut confirmer que cela fonctionne pour moi, laissez-moi savoir si cela fonctionne pour vous.

var casper = require('casper').create({ 
    verbose: true, 
    logLevel: 'error', 
    pageSettings: { 
    loadImages: true, 
    loadPlugins: true, 
    userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11' 
    }, 
    clientScripts: ['vendor/jquery.min.js', 'vendor/lodash.js'], 
    viewportSize: { 
    width: 1600, 
    height:1000 
    }, 
}); 

casper.start('http://dev.bunkerbradleycouture.com/') 

casper.then(function() { 
    this.waitForSelector('img', function() { 
    this.capture('test.png') 
    }) 
}) 

casper.run() 
+0

Le code ci-dessus ne fonctionne pas pour moi. Pourtant, je reçois des boîtes carrées. – user3335891

+0

@ user3335891 montrez-moi la page que vous voulez gratter et je pourrais être en mesure d'aider plus – jakequade

+0

Je suis la mise au rebut de ce site dev.bunkerbradleycouture.com pour le test automatisé. – user3335891