Situation
我试图在Internet中运行一些自动化测试。它们在Firefox中已经运行良好,但出于某种原因,它们只能在浏览器窗口打开后不久在IE中按预期运行。
基本上,当dev工具关闭时,这两个测试是不兼容的:
it('logs in', () => {
browser.get('/#/login');
element(by.model('vm.credentials.username')).sendKeys('noaccounts@neocles.io');
element(by.model('vm.credentials.password')).sendKeys('test1234');
element(by.css('#sign-in')).click();
expect(browser.driver.findElement(by.css('#sign-in')).getAttribute('class')).toMatch(/\bloading\b/);
expect(element(by.css('.account-list p:last-child')).getText()).toBe('AccountPage.NoAccountsForUser');
expect(browser.driver.findElement(by.css('#sign-in')).getAttribute('class')).not.toMatch(/\bloading\b/);
});
it('autoselects single account', () => {
browser.get('/#/login');
element(by.model('vm.credentials.username')).sendKeys('shopowner@neocles.io');
element(by.model('vm.credentials.password')).sendKeys('test1234');
element(by.css('#sign-in')).click();
expect(browser.getCurrentUrl()).toBe('http://localhost:8000/#/');
});期望行为
因此,在这两个测试中,它都执行一个登录操作,这将导致对后续请求的授权头被设置为某个值。然后获取一个帐户列表,您可以访问该列表,该列表基于通过授权头发送的令牌。对于第一个测试,列表是空的,对于第二个,应该有一个帐户。
实际行为
在第二个测试中,它似乎使用在第一个测试期间设置的授权头对服务器执行请求。或者,它在第一个请求中缓存XHR请求,在第二个请求中使用该请求。我不能确定,因为,正如我所说的,当dev工具打开时,它就能工作,所以我无法验证正在发生的事情。
有什么想法吗?
发布于 2016-03-11 17:52:33
我将尝试在功能配置中将"设置为true:
定义在IEDriverServer启动IE之前清理或不清理浏览器缓存的功能。
capabilities: {
browserName: "internet explorer",
ensureCleanSession: true
},https://stackoverflow.com/questions/35911503
复制相似问题