1
我試圖運行在Internet Explorer中的一些自動化的測試。他們已經在Firefox中運行良好,但由於某種原因,只有在瀏覽器窗口打開後不久,我纔打開開發者工具,他們只能在IE中按預期運行。
基本上,同時開發工具被關閉這兩項測試都不能互相兼容:
it('logs in',() => {
browser.get('/#/login');
element(by.model('vm.credentials.username')).sendKeys('[email protected]');
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('[email protected]');
element(by.model('vm.credentials.password')).sendKeys('test1234');
element(by.css('#sign-in')).click();
expect(browser.getCurrentUrl()).toBe('http://localhost:8000/#/');
});
預期的行爲
所以在兩個測試中它做一個登錄動作,這將導致授權後續請求中的頭部設置爲特定值。然後獲取您有權訪問的帳戶列表,並且此列表基於通過授權標頭髮送的令牌。對於第一個測試,列表是空的,第二個應該有一個帳戶。
實際行爲
會發生什麼事是,在第二次測試中,它似乎是在做請求與在第一次測試中設定的授權頭的服務器。要麼是這樣,要麼是在第一個請求中緩存XHR請求,並在第二個請求中使用該請求。我無法確定,因爲正如我所說的,它在開發工具打開時起作用,所以我無法驗證這是發生了什麼。
任何想法?