2012-11-20 6 views
6

Ich muss Testberichte über Extranet unseres Unternehmens erhalten, wir verwenden phantom.js/casper.js, da es am einfachsten in den restlichen Testarbeitsablauf integriert werden konnte.Wie testet man HTTP mit HTTPS-Tunneling mit Casper.js?

Das Problem tritt auf, wenn versucht wird, über Tunneling von HTTP zu HTTPS zu wechseln. Wenn ein Benutzer auf unsere Website http://www.somecompany.com gehen und auf den Login-Link klicken sollte, wird sein Browser auf https // extranet.somecompany.com weitergeleitet. Wenn Sie die HTML-Quelle betrachten würden, würden Sie den HTML-Code sehen, der dem Formular entspricht, zu dem der Benutzer weitergeleitet wurde.

Wenn Sie jedoch versuchen, den Workflow mit casper.js neu zu erstellen, initiiere ich das Klickereignis erfolgreich auf dem Login-Link. Ich versuche dann, ein Formularelement zu identifizieren, um zu bestätigen, dass die Weiterleitung erfolgreich war, aber dieser Test schlägt fehl. Ich habe dann meinen nächsten Schritt nach der Umleitung geändert, um eine Aufnahme der Seite zu machen, um zu sehen, was Casper "sieht". Wenn ich das Bild öffne, erscheint das HTML, als ob ich nie umgeleitet worden wäre. Ich weiß, dass die Umleitung funktioniert, weil ich den Verkehr in Fiddler sehe, der den Tunnel zum Hafen 443 zeigt.

Ich habe SO gesucht, google und die Casper google Gruppe und kann nicht viel bezüglich einer Umleitung finden von HTTP zu HTTPS, kann Casper/Phantom einen Workflow wie diesen automatisieren oder muss ich etwas wie Selenium betrachten?

+2

Haben Sie versucht, vorbei '--ignore-ssl-Fehler = zu bejahen ist auf der Kommandozeile ? – NiKo

Antwort

0

Umleitung funktioniert in PhantomJS 1.9.8 out of the box. Wenn Sie sich unsicher fühlen sich frei, mit debuggen:

page.onResourceRequested = function(request) { 
    console.log('Request ' + JSON.stringify(request, undefined, 4)); 
}; 
page.onResourceReceived = function(response) { 
    console.log('Response ' + JSON.stringify(response, undefined, 4)); 
}; 

Sie in Ihrer ersten Antwort etw sehen sollte wie:

"redirectURL": "https//extranet.somecompany.com",