2012-11-20 15 views
6

Devo ottenere la copertura di test su alcune extranet della nostra azienda, stiamo usando phantom.js/casper.js poiché è stato il più semplice da integrare con il resto del nostro flusso di lavoro di test.Come testare il tunneling da HTTP a HTTPS con Casper.js?

Il problema si presenta quando si tenta di passare da HTTP a HTTPS tramite tunneling. Se un utente dovesse visitare il nostro sito Web all'indirizzo http // www.somecompany.com e fare clic sul collegamento di accesso, il browser reindirizza a https // extranet.somecompany.com. Se dovessi esaminare il codice HTML, vedresti l'HTML che corrisponde correttamente al modulo a cui è stato reindirizzato l'utente.

Tuttavia, quando si tenta di ricreare il flusso di lavoro con casper.js avvio con successo l'evento click sul collegamento di accesso. Quindi cerco di identificare un elemento del modulo per confermare che il reindirizzamento ha avuto esito positivo, ma questo test fallisce. Ho quindi modificato il mio prossimo passo dopo il reindirizzamento per eseguire una cattura della pagina per vedere quale casper "vede". Quando apro l'immagine, l'HTML appare come se non fossi mai stato reindirizzato. So che il reindirizzamento funziona perché vedo il traffico in Fiddler che mostra il tunnel che viene stabilito sulla porta 443.

Ho cercato SO, google e il gruppo di Google Casper e non riesco a trovare molto per quanto riguarda un reindirizzamento da HTTP a HTTPS, Casper/Phantom è in grado di automatizzare un flusso di lavoro come questo o dovrò guardare qualcosa come il selenio?

+2

Hai provato passando '--ignore-SSL-errori = affermativa alla riga di comando ? – NiKo

risposta

0

Il reindirizzamento funziona fuori dalla scatola in PhantomJS 1.9.8. In caso di dubbi non esitate a eseguire il debug utilizzando:

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

Si dovrebbe vedere nel tuo primo sth risposta del tipo:

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