При нажатии кнопки Protractor выдает сообщение об ошибке «Ожидание синхронизации Protractor со страницей». - PullRequest
1 голос
/ 28 марта 2019

Я пишу тесты E2E для моего углового веб-приложения с использованием транспортира и жасмина.Мой сценарий заключается в том, что после нажатия кнопки «обновить» мой веб-сайт перезагружается, после перезагрузки он попадает на ту же страницу, которая является угловой, и если для перезагрузки сайта требуется слишком много времени, транспортир выдаст следующую ошибку:

Failed: Ошибка при ожидании синхронизации Protractor со страницей: «тестируемость angularJS и тестируемость angular не определены. Это может быть связано либо с тем, что это не угловая страница, либо с тем, что ваш тест включает в себя навигацию на стороне клиента, которая может помешать работеНачальная загрузка транспортира. Подробности см. https://github.com/angular/protractor/issues/2643 *

Я применил все решения здесь по переполнению стека, но ни одно из них не решило проблему.Я пробовал следующие включения и отключения синхронизации:

  1. Browser.ignoresync = true;
  2. нажмите кнопку обновления
  3. browser.sleep (3000);
  4. Browser.ignoresync = false;

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

Я использую следующие версии транспортира и жасмина:

"protractor": "5.4.2",
"jasmine": "2.8.3"

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Ваше подозрение относительно тайм-аута, возникающего, когда загрузка сайта занимает больше времени, мне кажется правильным, так как вы видите проблему с вашим взаимодействием на первой странице.Я бы добавил browser.wait вместо этого явного ожидания, чтобы дать вашей странице необходимое время.

browser.wait(
   element(by.buttonText('Update')), 
   10*1000, 
   'Page did not load within 10 seconds (update btn not present)'
)
0 голосов
/ 28 марта 2019

browser.ignoreSynchronization = true; устарела, попробуйте browser.waitForAngularEnabled(true); после нажатия кнопки update в приложении.

Так что это заставляет вашего транспортира ждать, пока все угловые модули не будут полностью загружены.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...