2014-06-10 12 views
10

Nasza aplikacja (PHP) wymaga ustawienia określonych plików cookie w celu załadowania aplikacji klienckiej Angular.js. Jeśli pliki cookie nie zostaną ustawione, zostanie zgłoszony wyjątek i pojawi się strona błędu.Ustawienia plików cookie przed browser.get

Oznacza to, że w celu uruchomienia testów E2E musimy ustawić pliki cookie, ale następujące działania nie powiodły się, ponieważ Protractor próbuje znaleźć Angular zaraz po wywołaniu browser.get (nie jest tam, ponieważ został zgłoszony wyjątek).

browser.get('http://' + domain + '/'); 
browser.manage().addCookie('foo', 'boo', '/', domain); 

Próbowałem zadzwonić browser.get po ustawieniu ciasteczek:

browser.manage().addCookie('foo', 'boo', '/', domain); 
browser.get('http://' + domain + '/'); 

Ale ta produkuje następujący błąd:

Failed to set the 'cookie' property on 'Document': Cookies are disabled inside 'data:' URLs.

Czy istnieje sposób, jak radzić sobie w tej sytuacji? Może chcesz, aby Protractor nie sprawdzał Angulara podczas wykonywania pierwszego połączenia browser.get lub w jaki sposób ustawił pliki cookie dla naszej domeny przed wywołaniem pobrania adresu URL?

Odpowiedz

19

znalazłem rozwiązanie w Protractor Getting Started Doc:

browser.driver.get('http://' + domain + '/'); 
browser.manage().addCookie('foo', 'boo', '/', domain); 

Zanotować browser.driver.get zamiast browser.get. Zapobiegnie to kątomierzowi szukającemu aplikacji Angular i można ustawić pliki cookie. Następnie używam innego browser.get wewnątrz instrukcji it.

+1

Dzięki za napisanie przykładu, jak korzystać z webdriver.WebDriver.Options, wywołując '.manage()'. Ponieważ podany link nie daje żadnej wskazówki, jak używać tego konkretnego interfejsu API. –

+1

Zwykle znajduję dokumentację kątomierza jako niekompletną lub złą, przykłady takie są bardzo pomocne. Dziękuję Ci. –

Powiązane problemy