0

我使用window.localStorage.removeItem("name of localStorage variable you want to remove");刪除規範中的兩個不同localStorage密鑰,它們被成功刪除。量角器 - 清除LocalStorage丟失連接規格

下一步是進入我的應用程序的另一個頁面,顯示一個對話框,要求您由於會話丟失而再次登錄,但使用量角器執行此操作也不行,即使localStorage鍵已被正確清除,但手動(刪除它們給予右鍵單擊和刪除),它會起作用並彈出對話框。

可能是什麼問題?

+0

如何清除會話和本地存儲手動註銷?那是一個插件嗎?或者只是devtools? – Xotabu4

+0

只需devtools,從那裏刪除它們(應用程序 - >本地存儲 - >刪除這兩個鍵),手動工作,並從另一個狀態更改後,對話框要求我再次登錄出現,但是當測試運行時,它不起作用,鑰匙只是再次出現而不要求再次登錄。 –

回答

0

請考慮徹底清除cookie,本地和會話存儲,而不是僅擦除2個密鑰。

browser.manage().deleteAllCookies(); 
browser.executeScript('window.sessionStorage.clear(); window.localStorage.clear();') 
+0

沒有工作:S我找不到原因,如果我手動做它的工作,如果量角器做它,它不起作用:S –

0

它看起來像您的網站存儲cookie的不同領域,或httponly餅乾。

Webdriver只能刪除您當前所在的相同域的cookie。所以如果你的API給你一些authtoken - 它不會被刪除,因爲它存儲在不同的域。 HTTPonly cookie也一樣。

HttpOnly cookie 
An HttpOnly cookie cannot be accessed by client-side APIs, such as JavaScript. This restriction eliminates the threat of cookie theft via cross-site scripting (XSS). However, the cookie remains vulnerable to cross-site tracing (XST) and cross-site request forgery (XSRF) attacks. A cookie is given this characteristic by adding the HttpOnly flag to the cookie. 

我建議你導航到API的URL,並調用browser.manage().deleteAllCookies();方法有或致電手動您的網站