量角器和Angular 8:在Angular应用运行之前设置localStorage吗?

问题描述

我有一些端到端测试要求,需要通过localStorage模拟一些数据,但是在Angular运行之前很难设置localStorage。该应用程序最终确实会看到我设置的localStorage项,但是只有在Angular很好地运行了组件代码并发出HTTP请求之后。这是我尝试过的:

beforeAll(() => {
  // Attempt #1
  browser.get('/');
  browser.executeScript(`window.localStorage.setItem('foo','bar');`);

  // Attempt #2
  browser.get('/').then(() => {
    return browser.executeScript(`window.localStorage.setItem('foo','bar');`);
  });
});

量角器是否还有其他机制可以实现此目的?还是在按规格(或browser.get)加载之前,将数据注入Angular应用程序的其他一些创造性方法?谢谢!

解决方法

我建议您在protractor config fileonPrepare钩子中进行设置。

如果准备工作涉及任何异步调用,例如与浏览器进行交互。

在配置中:

onPrepare() {
  return browser.get('/').then(() => {
    return browser.executeScript(`window.localStorage.setItem('foo','bar');`);
  });
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...