Protractor 量角器测试:browser.get清除会话存储
我的量角器测试有一个很奇怪的问题。我正试图直接在sessionStorage上设置正确的凭据,但身份验证服务没有接收到它。我已将其隔离到以下脚本:Protractor 量角器测试:browser.get清除会话存储,protractor,Protractor,我的量角器测试有一个很奇怪的问题。我正试图直接在sessionStorage上设置正确的凭据,但身份验证服务没有接收到它。我已将其隔离到以下脚本: describe('The search', () => { beforeAll(() => { browser.executeScript(() => { window.sessionStorage.setItem('something', JSON.stringify({"test
describe('The search', () => {
beforeAll(() => {
browser.executeScript(() => {
window.sessionStorage.setItem('something', JSON.stringify({"test":"test"}));
});
});
it('works when changing URL', () => {
var result1 = browser.executeScript('return window.sessionStorage.getItem(\'something\')');
browser.get('/');
var result2 = browser.executeScript('return window.sessionStorage.getItem(\'something\')');
expect(result1).toBe(result2);
});
});
输出:
1) The search works when changing URL
Message:
Expected '{"test":"test"}' to be null.
Stack:
Error: Failed expectation
at Object.<anonymous> (/source/search.spec.ts:12:25)
at process._tickCallback (node.js:368:9)
1)更改URL时搜索工作正常
信息:
“{”test“:“test”}”应为空。
堆栈:
错误:预期失败
反对。(/source/search.spec.ts:12:25)
在进程中调用(node.js:368:9)
如您所见,只要调用browser.get()
,会话存储就会被清除。有人知道为什么会发生这种情况吗?导航到URL,然后设置本地存储项对我很有用:
describe('The search', function () {
var value = JSON.stringify({"test":"test"});
beforeAll(function () {
browser.get('/');
browser.executeScript(function (value) {
window.sessionStorage['something'] = value;
}, value);
});
it('works when changing URL', function () {
var result = browser.executeScript('return window.sessionStorage.getItem(\'something\');');
expect(value).toEqual(result);
});
});
导航到URL,然后设置本地存储项对我有效:
describe('The search', function () {
var value = JSON.stringify({"test":"test"});
beforeAll(function () {
browser.get('/');
browser.executeScript(function (value) {
window.sessionStorage['something'] = value;
}, value);
});
it('works when changing URL', function () {
var result = browser.executeScript('return window.sessionStorage.getItem(\'something\');');
expect(value).toEqual(result);
});
});
这确实奏效了。我不得不在executeScript部分之后添加一个额外的
浏览器。get('/')
,这样引导脚本就可以获取凭据并将我转发到索引页而不是登录页。这确实起到了作用。我不得不在executeScript部分之后添加一个额外的浏览器.get('/')
,这样引导脚本就可以在凭据上找到我,并将我转发到索引页而不是登录页。