Angular 量角器:失败:等待异步角度任务在11秒后完成时超时

Angular 量角器:失败:等待异步角度任务在11秒后完成时超时,angular,protractor,e2e-testing,angular-e2e,Angular,Protractor,E2e Testing,Angular E2e,我得到以下错误: 失败:等待异步角度任务完成时超时 11秒后。这可能是因为当前页面不是 角度应用 我见过类似的问题,但似乎没有一个好的解决办法 在Angular 4上工作 我的设置是: 1) 发射前: 我正在使用webdrive和chromedriver获取令牌进行身份验证 beforeLaunch(){ const webdriver = require('selenium-webdriver'); const chrome = require('selenium-webdr

我得到以下错误:

失败:等待异步角度任务完成时超时 11秒后。这可能是因为当前页面不是 角度应用

我见过类似的问题,但似乎没有一个好的解决办法

在Angular 4上工作

我的设置是:
1) 发射前: 我正在使用webdrive和chromedriver获取令牌进行身份验证

beforeLaunch(){

    const webdriver = require('selenium-webdriver');
    const chrome = require('selenium-webdriver/chrome');
    const path = require('chromedriver').path;
// do stuff like get token save it in variable
driver.quit();
}
2) 准备

browser.params.tokens=启动前的令牌

(三)

第三步是给出错误

PS:我已经尝试了多种选项,如ignoreSync、waitforangularenabled、sleep nothing worked,有人能指出我做错了什么吗

以下是应用程序的特定结构可能导致的问题。因为默认情况下,量角器将等待角度应用程序,直到角度进入所谓的“平静模式”

在执行任何操作之前,量角器将等待,直到Angular应用程序中没有挂起的异步任务。这意味着所有超时和http请求都已完成。-这是“平静模式”

很多人都会遇到这个问题,你可以看到很多关于StackOverFlow的问题,很久以前我也问过这个问题,然后我们和我的团队一起解决了这个问题

首先,阅读它以了解一个基础:

轮到我了,我会给你推荐两个选项,你需要从中选择一个

  • 在测试失败的地方,将
    waitForAngularEnabled(假)设置为waitForAngularEnabled(假)
    在一些操作(您将在测试时定义)之后,通过将同一行代码放在布尔值为true的位置返回它

    waitForAngularEnabled(true)

  • 这意味着您命令量角器不要等待Angular停止工作并进一步执行其工作,然后在您知道Angular再次停止工作的某个点上,再次打开此参数,量角器将再次等待Angular。 但它可能不是唯一一个发生这种情况的地方,如果是,你需要选择2

  • 与开发人员讨论如何更改应用程序,以使量角器能够无障碍地运行。 另外,这是我在团队中做的事情,他们确定了一个应用程序,以使量角器测试能够顺利进行

  • 为什么在beforeLaunch中使用
    driver.quit()
    ?在on中,在我使用前面提到的lib登录到headless chrome之前,所以一旦我的工作完成,获取令牌,我就关闭它。所以你看到浏览器开始启动并打开页面了吗?是的,只有当它尝试运行“it”时,一切都会按预期工作,它会失败。假设行
    browser.get(“/home?”+browser.params.token)
    以分号结尾?
    it('should authenticate',() => {
           browser.get('/home?'+browser.params.token)
           expect(browser.getCurrentUrl()).toContain('home');
    })