Транспортир не собирается идти в угловой последний раздел нашего приложения - PullRequest
0 голосов
/ 09 октября 2018

Мы обновляем наше приложение с AngularJS до версии Angular.

Я пытаюсь создать несколько тестов, которые начинаются в версии приложения AngularJS и переходят к приложению администратора, которое находится в последней версии приложения Angular.Ниже тест, который я пытаюсь выполнить.

describe('Admin App - Create Users', () => {
      beforeAll(async() => {
        await loginPage.login(companyUser, companyUserPwd)
        await common.navigationOpenByClick()
        await navPage.navigateToApp(AppParams.apps.admin.navLink)
        await admin.navigateAdmin('Users')
      })

      afterAll(async() => {
        await common.signOut()
      })

      _.forEach(CommonStrings.Strings.differentStrings, firstName => {
        it(`Create a New User First Name - ${firstName}`, async() => {
          await admin.createNewUser({
            userConfig: {
              firstName
            },
            clickSave: false
          })
          expect(admin.newUserAcceptBtn.getAttribute('disabled')).toBe(`true`)
          await admin.newUserCancelBtn.click()
        })
      })
}

В beforeEach() я перехожу к приложению администратора и затем нажимаю ссылку Users, чтобы перейти к этому разделу в приложении администратора.Проблема в том, что он никогда не щелкает по разделу Users и вместо этого выдает следующую ошибку:

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"

Так что я нажал на ссылку в этом, и они обсуждали, что причина этогоиз-за перенаправления, которое имеет место.Поэтому я попробовал следующее после строки await navPage.navigateToApp() в beforeEach().Я также попробовал несколько предложений в этом билете, упомянутых в ошибке, и ни одно из них не помогло.

browser.sleep() это помогло, вроде как, вышеприведенная ошибка исчезла, но я столкнулся с allScriptsTimeout в моем файле protractor.config.

browser.refresh() без помощи

browser.wait(EC.urlContains('end of link to the admin application')) Это помогло в том, что ошибка ушла, но я сталкиваюсь с allScriptsTimeout

Просто интересно, что еще я могу попробоватьзаставить этот набор тестов работать?

1 Ответ

0 голосов
/ 29 октября 2018

Я исправил это, выполнив две вещи в моем beforeEach() Сначала, после входа в приложение, я перехожу непосредственно к нужному разделу программы, выполнив await browser.get('/areaoftheapplication') Затем сразу после этого я делаю await browser.waitForAngularEnabled(false) и это работает.

    beforeAll(async () => {
        await loginPage.login(companyUser, companyUserPwd)
        await browser.get('v2/admin')
        await browser.waitForAngularEnabled(false)
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...