2015-04-29 15 views
6

Sprawa, którą próbuję przetestować: Na przycisku Kątowa strona aplikacji, która przekieruje Cię do innej witryny (nie do aplikacji Angular).Kątomierz: uzyskaj URL strony nieprostokątnej

it('should go to 3d party service when i click "auth" button' , function() { 

    browser.driver.sleep(3000); 
    element(by.id('files-services-icon')).click(); 
    element(by.id('box-vendor-menu-item')).click(); 
    browser.driver.sleep(2000); 

    expect(browser.driver.getLocationAbsUrl()).toContain('https://app.box.com/api/oauth2/authorize'); 
}); 

ale otrzymuję:

UnknownError: unknown error: angular is not defined

Jak to można VSD? Dzięki!

Odpowiedz

7

trzeba zrobić 2 rzeczy

  • Set browser.ignoreSynchronization = true; przed próbuje odczytać adres URL strony 3rd, więc przeglądarka nie czekać na (i tak wymagają) kątowe obiecuje rozwiązać na stronie (i ustaw go później na false);
  • Użyj browser.getCurrentUrl() w przeciwieństwie do , ponieważ pierwsza z nich używa prostej metody odczytu adresu URL, zamiast dostępu do niej za pomocą Angular.

Poniższa powinno działać:

it('should go to 3d party service when i click "auth" button' , function() {  
    element(by.id('files-services-icon')).click(); 
    element(by.id('box-vendor-menu-item')).click(); 
    browser.ignoreSynchronization = true; 
    expect(browser.getCurrentUrl()).toContain('https://app.box.com/api/oauth2/authorize'); 
    browser.ignoreSynchronization = false; 
}); 
2

Trzeba podkręcić ignoreSynchronization flag - ustawić go true przed kliknięciem na link i ustawić z powrotem do false w afterEach():

afterEach(function() { 
    browser.ignoreSynchronization = false; 
}); 

it('should go to 3d party service when i click "auth" button' , function() {  
    element(by.id('files-services-icon')).click(); 

    browser.ignoreSynchronization = true; 
    element(by.id('box-vendor-menu-item')).click(); 

    expect(browser.getLocationAbsUrl()).toContain('https://app.box.com/api/oauth2/authorize'); 
}); 

Patrz także:

Być może będziesz musiał poczekać na zmianę adresu URL, example here .

+0

dziękuję za wyjaśnienia, ale także powrót tego samego błędu 'UnknownError: nieznany błąd: nie defined' jest kanciasty – paka

Powiązane problemy