2017-02-15 6 views
0

Это мой первый пост на StackOverflow, поэтому, пожалуйста, будьте осторожны.Транспортир в контейнере докера - Подождите, пока загрузится полная страница

Я выполняю некоторые испытания с помощью контейнера Docker. Тесты хорошо работают с контейнером, но в нем транспортир не ждет некоторых угловых вызовов ajax, чтобы полностью заполнить некоторый div.

it('Should check first years are equal', function() { 
    var firstElementFirstYear = $$('div.cumulated div.street-table-value.ng-scope div.ng-binding.ng-scope').get(8).getInnerHtml().then(function(text) {return text.trim();}); 
    var secondElementFirstYear = $$('div.cumulated div.street-table-value.ng-binding.ng-scope').get(8).getInnerHtml().then(function(text) {return text.trim();}); 
    expect(firstElementFirstYear).toEqual(secondElementFirstYear); 
},10000); 

Тогда я получаю индекс из ограничивающего исключения.

Я пробовал:

  • использовать waitForAngular в beforeEach.
  • ожидание для ожидаемого условия (число> 9) должны быть выполнены, но он получает timedout
  • browser.sleep (4000) перед тем, как элементами
  • пытался найти мои элементы с помощью инструмента транспортира отладки, запуск хрома браузер, и я получаю мои 10 элементов правильно, когда я найти их вручную

Но мне не удается получить все необходимые элементы, число элементов остается на 5 и никогда не идут на 10.

Что еще я мог бы попытаться подождать, пока Угловая, чтобы закончить призывы ajax и popula Те мои девы?

Спасибо!

+0

У нас возникли проблемы с кодом. – FCin

+0

Это не протактор, чтобы ждать. Это вы должны ждать, когда обещание будет разрешено с помощью 'then', и не используете ли вы $ httpBackend для издевки серверной части? – Walfrat

+0

'$$ ('div.someclass'). Get (8);' возвращает обещание, которое вам нужно решить. Итак, вы делаете '$$ ('div.someclass'). Get (8) .then (function (data) {});' – FCin

ответ

0

Вы были правы @FCin, элементы были на самом деле скрыты. Я установил разрешение экрана при запуске контейнера для транспортировки безголоса с:

-e SCREEN_RES=1920x1080x24 

И это все! Благодаря!