Protracktor vs. ocLazy Load

В настоящий момент я столкнулся с проблемой, когда проект, с которым я работаю, был реорганизован с использованием ocLazyLoad. Со своей стороны, я Automation QA, работающий с Protracktor v.5.1.2.

До реализации вышеупомянутой функции я успешно использовал транспортир с использованием такой опции, как

browser.ignoreSynchronization = false;

Но теперь, когда приложение загружает js-пакеты отдельно, транспортир, кажется, распознает конец Angular $ http и $ timeout задач, когда загружается первый js-пакет. Принимая во внимание, что страница все еще не готова для дальнейшей работы, потому что она загружает следующий ленивый загруженный пакет, и я получаю такие ошибки как:

No element found using locator

Я также пытался

browser.waitForAngularEnabled(true);

но это в основном то же самое, что и ignoreSynchronization, если вы видите исходный код.

Такие подходы могут показаться эффективными

browser.sleep(5000);

или же

browser.isElementPresent(by.css('a[ui-sref="some.stateLink"]'));

var $registerLink = element(by.css('a[ui-sref="some.stateLink"]'));

expect($registerLink.getText()).toEqual('Register Now');

или же

var elem = by.css('a[ui-sref="some.stateLink"]');
browser.driver.wait(function() {
    return browser.isElementPresent(elem);
}, 5000);
var $registerLink = element(elem);
expect($registerLink.getText()).toEqual('Register Now');

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

Кто-нибудь сталкивался с такой проблемой? Есть ли лучшие решения по сравнению с предложенными мною? Спасибо.

0 ответов

Другие вопросы по тегам