2012-11-20 13 views
6

Muszę uzyskać testowy zasięg na niektórych extranetach naszej firmy, używamy phantom.js/casper.js, ponieważ najłatwiej jest zintegrować go z resztą naszego procesu testowania.Jak przetestować tunelowanie HTTP na HTTPS za pomocą Casper.js?

Problem pojawia się podczas próby przejścia z HTTP na HTTPS przez tunelowanie. Jeśli użytkownicy mieliby wejść na naszą stronę internetową pod adresem http // www.somecompany.com i kliknąć link logowania, ich przeglądarka przekierowuje do https // extranet.somecompany.com. Jeśli spojrzysz na źródło HTML, zobaczysz kod HTML, który poprawnie odpowiada formularzowi, do którego przekierowano użytkownika.

Jednak przy próbie odtworzenia przepływu pracy za pomocą casper.js pomyślnie zainicjowałem zdarzenie click na łączu logowania. Następnie próbuję zidentyfikować element formularza, aby potwierdzić, że przekierowanie się powiodło, ale ten test kończy się niepowodzeniem. Następnie zmodyfikowałem mój następny krok po przekierowaniu, aby zrobić przechwycenie strony, aby zobaczyć, co casper "widzi". Kiedy otwieram obraz, kod HTML pojawia się tak, jakbym nigdy nie został przekierowany. Wiem, że przekierowanie działa, ponieważ widzę ruch w Skrzypku, który pokazuje, że tunel został ustanowiony do portu 443.

Szukałem SO, google i grupy goperowej Casper i nie mogę znaleźć wiele informacji na temat przekierowania od HTTP do HTTPS, czy Casper/Phantom jest w stanie zautomatyzować taki przepływ pracy, czy też będę musiał popatrzeć na coś takiego jak Selenium?

+2

Czy próbowali przejściu '--ignore-SSL błędy = yes' do linii poleceń ? – NiKo

Odpowiedz

0

Przekierowanie działa po wyjęciu z pudełka w PhantomJS 1.9.8. W razie wątpliwości zachęcamy do debugowania przy użyciu:

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

Powinieneś zobaczyć w swoim pierwszym sth odpowiedzi jak:

"redirectURL": "https//extranet.somecompany.com", 
Powiązane problemy