【发布时间】:2020-08-12 14:25:43
【问题描述】:
我有一些 E2E 测试要求,我需要通过 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');`);
});
});
Protractor 是否有其他机制来完成此任务?或者也许是其他一些创造性的方式在 Angular 应用程序加载之前将数据注入到每个规范(或 browser.get)的基础上?谢谢!
【问题讨论】:
-
您的应用程序的本地存储在您加载页面之前不存在。那么之前怎么设置呢?或者我没看懂问题
-
我主要是在寻找一种在浏览器打开后但在 Angular 加载/运行之前对浏览器实例执行操作的方法。我已经继续前进,现在我只是通过
browser.get()中的 URL 传递一些数据,但我仍然想知道是否有更好的方法。
标签: protractor angular8