2016-07-07 4 views
0

Я пытаюсь написать простые тесты стилей на угловой странице с помощью Protractor, а страница, которую я тестирую, может быть просмотрена только после завершения входа в Facebook. Проблема заключается в том, что тесты продолжают выполняться, пока попытка входа в систему по-прежнему активно происходит, и поэтому тесты терпят неудачу, потому что вход в систему на самом деле еще не произошел, а стили неправильно загружены. Невозможно (при нынешнем понимании) использовать onPrepare(), поскольку эта функция не встречается на большинстве тестовых страниц. Пробовал использовать beforeAll(), и даже положить функциональность в свой собственный 'it', то же самое происходит. Проблема не в переключении окон. Текущая state-protractor - facebook login с переключателем оконного дескриптора - тесты выполняются до завершения входа

it('...', function() { 

    facebookbutton.click(); 
    browser.getAllWindowHandles().then(function(handles){ 

     browser.ignoreSynchronization = true; 
     browser.switchTo().window(handles[1]); 

     facebookemail.sendKeys('user'); 
     facebookpass.sendKeys('pass'); 
     facebooklogin.click(); 

     browser.ignoreSynchronization = false; 
     browser.switchTo().window(handles[0]); 
    }); 
}); 

describe('Styling Tests --', function() { ... 

ответ

1

Написать последующий тест логики в функции обратного вызова после нажатия кнопки facebook входа в систему. это будет работать.

Code Snippet: 
    it('...', function() { 

     facebookbutton.click(); 
     browser.getAllWindowHandles().then(function(handles){ 

     browser.ignoreSynchronization = true; 
     browser.switchTo().window(handles[1]); 

     facebookemail.sendKeys('user'); 
     facebookpass.sendKeys('pass'); 
     /*use callback function after clicking login button*/ 
     facebooklogin.click().then(function(){ 
      browser.ignoreSynchronization = false; 
      browser.switchTo().window(handles[0]); 
     }); 
    }); 
    });