我们正在将应用程序从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()
的{{1}}行之后尝试了以下方法。我还尝试了错误中提到的该故障单中的一些建议,但没有一个有用。
beforeEach()
可以解决上述错误,但是我遇到了我的protractor.config文件中的browser.sleep()
。
allScriptsTimeout
没有帮助
browser.refresh()
这有助于消除错误,但是我遇到了browser.wait(EC.urlContains('end of link to the admin application'))
只是想知道我还能尝试什么来使该测试套件正常工作?
答案 0 :(得分:0)
我通过在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)
})