2016-03-03 25 views
1

我做端到端測試幻像和量角器的幫助,但每次 我做我的代碼(不是E2E測試代碼)的變化,似乎幻影是不是 採取的新變化或清潔的localStorage和sessionStorage的。我認爲這可能是緩存,但我不確定。如何清除幻像上的localstorage和sessionstorage?

我試圖在我的protractor.config文件中添加下一句以清理LocalStorage。

onPrepare: function() { browser.executeScript("return window.localStorage.clear();"); } 

然而,它沒有工作,而不是我得到這個錯誤

var template = new Error(this.message);^UnknownError: {"errorMessage":"SecurityError: DOM Exception 18","request":{"headers":{"Accept-Encoding":"gzip,deflate","Connection":"Keep-Alive","Content-Length":"58","Content-Type":"application/json; charset=utf-8","Host":"localhost:9781","User-Agent":"Apac he-HttpClient/4.5.1 (Java/1.7.0_79)"},"httpVersion":"1.1","method":"POST","post":"{\"script\":\"return window.localStorage.clear();\",\"args\":[]}","url":"/execute","urlParsed":{"anchor":"","query":"","file":"execute","directory":"/","path":"/execute","relative ":"/execute","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/execute","queryKey":{},"chunks":["execute"]},"urlOriginal":"/session/dc9ce280-e15f-11e5-911a-4b92e3de49f0/execute"}} Build info: version: '2.51.0', revision: '1af067d', time: '2016-02-05 19:15:17' Driver info: driver.version: unknown

回答

0

和你一樣,我也看到了很多的意見,呼籲window.localStorage.clear()以清除PhantomJS本地存儲。但是這裏的交易 - 如果你在遠程域上進行測試,這段代碼會引發安全異常,因爲瀏覽器(不應該)允許跨域清除本地存儲數據。

但是,您可以執行的操作是控制將本地存儲寫入到測試機器上的數據文件所在的位置。這將是--local-storage-path(命令行參數)或(在C#,Java的類似):

PhantomJSDriverService service = 
         PhantomJSDriverService.CreateDefaultService(); 
//IMPORTANT: avoid the common pitfall of trying to specify a file name!! 
// provide the path to the folder only 
service.LocalStoragePath = @"path\to\where\I\want\local-storage\saved; 

var driver = new PhantomJSDriver(service); 

本地存儲文件保存用文件名[域] .localstorage。在運行每個測試之前,請檢查您指定的文件夾中是否存在文件* .localstorage,然後將其刪除。這將爲您清除本地存儲空間。

相關問題