1

У меня есть код транспортира, написанный Жасмином, который должен войти в систему пользователя. К сожалению, перенаправление происходит после перехода к корневому URL-адресу, который занимает довольно много времени (около 5 секунд), и я не могу заставить транспортир ждать его. Я уже пробовал browser.wait, я пытался использовать обещания, я пробовал с this blogpost, но ничего не сделал. Он все еще не ждет. Страница входа - это страница с сервера Keycloak, поэтому я использую driver.findElement вместо element. Вот мой текущий код:Транспортир не ждет перенаправления

describe('my app', function() { 
    it('login', function() { 
    var driver = browser.driver; 
    browser.get('/'); 
    console.log('get'); 
    driver.findElement(by.id('username')).isPresent().then(function() { 
     console.log('waited'); 
     driver.findElement(by.id('username')).sendKeys("test"); 
     driver.findElement(by.id('password')).sendKeys("test"); 
     driver.findElement(by.id('kc-login')).click(); 
     driver.findElement(by.css('.page-header')).isPresent().then(function() { 
     console.log('ok'); 
     expect(browser.getLocationAbsUrl()).toMatch("/test"); 
     }); 
    }); 
    }); 
}); 

Вы знаете, что я могу сделать, чтобы заставить его работать? Я начал транспортир проект с этим семенем: https://github.com/angular/angular-seed

ответ

3

Вы должны включить синхронизацию от:

var EC = protractor.ExpectedConditions; 

describe('my app', function() { 

    beforeEach(function() { 
     browser.ignoreSynchronization = true; 
     browser.get('/'); 
    }); 

    it('login', function() { 
    var username = element(by.id('username')); 
    browser.wait(EC.visibilityOf(username), 10000); 

    username.sendKeys("test"); 
    element(by.id('password')).sendKeys("test"); 
    element(by.id('kc-login')).click(); 

    var header = element(by.css('.page-header')); 

    browser.wait(EC.visibilityOf(header), 10000).then(function() { 
     console.log('logged in'); 
    }); 
    }); 
}); 

Обратите внимание, что я также обновленный тест: переключается обратно на element и browser, добавил browser.wait() со встроенным Ожидаемые условия.

Смежные вопросы