2016-04-22 6 views
0

Ich versuche, eine Website mit Casperjs einzuloggen.Login-Website mit Casperjs?

Ich versuche diesen Code.

var casper = require('casper').create({ 
    pageSettings: { 
     loadImages: false, 
     loadPlugins: false, 
     userAgent: 'Mozilla/45.0.2 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36' 
    } 
}); 

casper.start().thenOpen("https://sellercentral.amazon.in/gp/homepage.html", function() { 
    console.log("amazon site website opened"); 
    var html = this.getPageContent(); 
    console.log(html); 
}); 
casper.then(function(){ 
    console.log("Login using username and password"); 
    this.evaluate(function(){ 
     document.getElementById("username").value="******"; 
     document.getElementById("password").value="******"; 
     document.getElementById("sign-in-button").click(); 
    }); 
}); 
casper.then(function(){ 
console.log("Make a screenshot and save it as AfterLogin.png"); 
    this.wait(40000); 
    this.capture('AfterLogin.png'); 
}); 
casper.run(); 

Aber ich bekomme die Ausgabe

<html><head></head><body></body></html> 
    Login using username and password 
    Make a screenshot and save it as AfterLogin.png 
    [] 

wenn ich console.log (html) drucken, die nur über HTML-Tags drucken. Ich versuche auch den gleichen Code für facebook.com immer noch gleich.

+0

Es gab Probleme mit älteren mit Phantomjs-Version, bei der Sie keine Verbindung herstellen konnten, ohne bestimmte SSL-Protokollparameter festzulegen. Versuchen Sie den Parameter '' '- ssl-protocol = tlsv1'''' –

+0

Ich versuche das aber jetzt Mein Programm druckt keine Sache und nicht zu verlassen –

+0

Was Casperjs und Phantomjs Version verwenden Sie? –

Antwort

0

Sie können nightmare.js oder phantom.js verwenden. Beide erlauben es mir, HTML von der Webseite zu lesen und Ereignisse zu simulieren.

Alternativ kann u die Endpunkte überprüfen und sie nur dort treffen Daten abzurufen

+0

jede Referenz, wo ich Beispiel bekommen kann. –

+0

Nun casperjs verwendet bereits Phantomjs, aber mit zusätzlichen Hilfsmethoden, um die Navigation usw. einfacher zu machen. –

0

Ihr Problem nicht erfolgreich CAPTCHA-Test Pass binded werden können (Sie werden es vermissen, wenn loadImages: false verwenden) bei //*[@id="ap_captcha_img"]/img XPath auf gegebene Antwort.

In einem CasperJS/1.1.1 + PhantomJS/2.1.1 Setup, einen ähnlichen Code

var sURL = 'https://sellercentral.amazon.in/gp/homepage.html'; 
var casper = require("casper").create({ 
    pageSettings: { 
     loadImages: true, 
     userAgent: 'Mozilla/45.0.2 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36' 
    } 
}); 

casper.start(); 
casper.thenOpen(sURL, function() { 
    console.log("website opened"); 
    var html = this.getPageContent(); 
    console.log(html); 
}); 
casper.then(function(){ 
    console.log("Login using username and password"); 
    this.fill('form[name=signinWidget]', { 
      'username': 'username', 
      'password': '123456' 
     }, true); 
}); 
casper.wait(10000, function() { 
    console.log("Make a screenshot and save it as AfterLogin.png"); 
    this.capture('AfterLogin.png'); 
}); 

casper.run(function() { 
    this.exit(); 
}); 

bekam die folgende Ausgabe

website opened 
<!DOCTYPE html><html><head> 

<!-- 
whole resource HTML 
--> 

</body></html> 
Login using username and password 
Make a screenshot and save it as AfterLogin.png 

enter image description here