我正在使用量角器来测试包含3个组件的应用程序:
OpenAM
非角度登录组件,首先,我使用OpenAM组件登录。在登录步骤之前,我包括了browser.waitForAngularEnabled(false)
,因为否则我会得到Angular could not be found on the page
错误,这是完全合理的。
然后,我在非角度应用程序组件中执行了一些步骤,尽管我没有在步骤代码和conf文件中都没有包含browser.waitForAngularEnabled(false)
,但它们没有错误地执行。
然后,使用非角度应用程序组件内的链接,导航到角度应用程序组件,该组件将在新的浏览器选项卡中打开,并且所有地狱都无法解决。即使使用等待,睡眠等,也找不到页面上的任何元素,因此我尝试使用browser.waitForAngularEnabled(true)
,但是当我这样做时,我得到了
等待量角器与页面同步时出错:“两者 angularJS可测试性和角度可测试性未定义。”
有趣的是,当我从OpenAM
登录页面直接导航到angular应用程序组件时,我没有遇到任何此类问题,并且所有步骤都可以正常执行。
这是登录规范:
export class LoginPage {
public async loginUsingCredentials(user, pass) {
browser.waitForAngularEnabled(false);
await browser.get(config.baseUrl);
await username.sendKeys(user);
await password.sendKeys(pass);
await signIn.click();
}
}
它作为BeforeAll挂钩执行。
其他测试步骤与此处发布无关。
重要的是,如果我使用browser.get('example:8080/angularapp')
直接进入有角度的应用程序组件,所有步骤都将正确执行。
但是,如果我先进入主应用程序组件browser.get('example:8080')
,然后在其中执行一些步骤,然后使用链接移至角度组件,则会收到如上所述的错误。
在两种情况下,角度分量的测试步骤均相同。同样在这两种情况下,我都需要先使用OpenAM
登录。