问题描述
我有一些端到端测试要求,需要通过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 file的onPrepare
钩子中进行设置。
如果准备工作涉及任何异步调用,例如与浏览器进行交互。
在配置中:
onPrepare() {
return browser.get('/').then(() => {
return browser.executeScript(`window.localStorage.setItem('foo','bar');`);
});
}