首页 文章

如何在幻像上清理本地存储和会话存储?

提问于
浏览
1

我正在幻影和量角器的帮助下进行e2e测试,但是每次我对代码进行更改(而不是e2e测试代码)时,似乎幻影没有采取新的更改或清理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“,”方法“:”POST“,”post“:”{\“script \”:\“return window.localStorage.clear(); \ “\ ”ARGS \“:[]}”, “URL”: “/执行”, “urlParsed”:{ “锚”: “”, “查询”: “”, “文件”: “执行”, “directory”:“/”,“path”:“/ execute”,“relative”:“/ execute”,“port”:“”,“host”:“”,“password”:“”,“user” : “”, “用户信息”: “”, “权威”: “”, “协议”: “”, “源”: “/执行”, “queryKey”:{}, “块”:[ “执行”] },“urlOriginal”:“/ session / dc9ce280-e15f-11e5-911a-4b92e3de49f0 / execute”}}构建信息:版本:'2.51.0',修订版:'1af067d',时间:'2016-02-05 19 :15:17'驱动程序信息:driver.version:未知

1 回答

  • 0

    和你一样,我也看到很多建议叫 window.localStorage.clear() 来清除PhantomJS中的本地存储 . 但是这里's the deal -- if you'正在远程域上进行测试,这段代码会引发安全异常,因为浏览器(不应该)允许跨域清除本地存储数据 .

    但是,您可以控制在测试计算机上写入本地存储的数据文件所在的位置 . 那将是 --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);
    

    使用名称[domain] .localstorage保存本地存储文件 . 在运行每个测试之前,检查您指定的文件夹中是否存在文件* .localstorage,并将其删除 . 这将为您清除本地存储空间 .

相关问题