Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Protractor: По завершению теста, который проходит успешно всегда получаю сообщение Error while waiting for Protractor to sync with the page

protractor
Теги: #<Tag:0x00007f7b62ba1528>

(Igor Rozdobudko) #1

Всем привет!

Столкнулся с проблемой после больших апдейтов на сайте.
Ве
Суть проблемы: по завершению теста, который passed всегда появлется error message. @AfterTestа в проекте нет.

Test:

beforeEach(async()=>{
BrowserHelper.clearSession();
BrowserHelper.login(customer);
});

it(’[C2788] User Profile menu. Settings page. BILLING ADDRESS(ES)’, async () => {
console.log(‘Any test’);
});

Error message:

  • Failed: Error while waiting for Protractor to sync with the page: “both angularJS testability and angular testability are undefined. This could be either because this is a non-angular page or because your test involves client-side navigation, which can interfere with Protractor’s bootstrapping. See http://git.io/v4gXM for details”
    at runWaitForAngularScript.then (/home/***/Projects/***/***-e2e-tests/node_modules/protractor/built/browser.js:463:23)
    at process._tickCallback (internal/process/next_tick.js:68:7)
    From asynchronous test:
    Error
    at Suite.describe (/home/***/Projects/SiXT/mydriver-e2e-tests/web-tests/src/user-settings-billing-address.spec.ts:22:5)
    at Object. (/home/***/Projects/***/***-e2e-tests/web-tests/src/user-settings-billing-address.spec.ts:20:1)
    at Module._compile (internal/modules/cjs/loader.js:702:30)
    at Object.Module._extensions…js (internal/modules/cjs/loader.js:713:10)
    at Module.load (internal/modules/cjs/loader.js:612:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:551:12)

await browser.waitForAngularEnabled(false) в конце теста ничего не даёт

Версия протрактора последняя.


#2

Привет!

Если я правильно помню, нужно явно отключить в конфигурации протрактора ожидание исполнения некоторых тасков до взаимодействия с браузером. Конкретно, кажется, вот эта строчка:

browser.waitForAngularEnabled(false);

Документация

А вот тут неплохое объяснение, что к чему:

What will happen once waitForAngularEnabled(false) is invoked? (once the criteria is meet or timeout occur in my case)

Empirically I have found that this seems to cause Protractor to behave as merely Webdriver. It does not wait for Angular to “settle down” (no pending HTTP requests or view updates), which is the behavior for true . Instead, if you use the false setting, you will need to use ExpectedConditions or similar approaches in order to verify preconditions to execute test steps reliably, just as you would with an ordinary Webdriver test.


(Igor Rozdobudko) #3

Привет!

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

К сожалению, апдейты от девов привели к тому, что написанный тестовый проект придётся адаптировать под сайт, и таким образом теряется множество преимуществ протрактора.