当开发人员工具关闭时,量角器测试在IE上失败

时间:2016-03-10 08:47:54

标签: internet-explorer selenium selenium-webdriver protractor

场合

我正在尝试在Internet Explorer中运行一些自动化测试。他们已经在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/#/');
});

预期行为

因此,在两个测试中,它都在执行登录操作,这会导致后续请求中的Authorization标头设置为某个值。然后获取您有权访问的帐户列表,此列表基于通过Authorization标头发送的令牌。对于第一个测试,列表为空,对于第二个测试,应该有一个帐户。

实际行为

在第二次测试中,它似乎是使用在第一次测试期间设置的Authorization标头向服务器发出请求。要么是,要么在第一个请求中缓存XHR请求并在第二个请求中使用它。我无法确定,因为正如我所说的那样,当dev工具打开时它才有用,所以我无法验证这是发生了什么。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我会尝试在您的功能配置中将"ensure clean session"设置为true

  

在IEDriverServer启动IE之前定义清理浏览器缓存的能力。

capabilities: {
    browserName: "internet explorer",
    ensureCleanSession: true
},