我在幻影和量角器的帮助下进行e2e测试,但每次都是这样 我对我的代码进行了更改(不是e2e测试代码),似乎幻像不是 采取新的更改或清理localStorage和SessionStorage。我认为它可能是缓存,但我不确定。
我尝试在protractor.config文件中添加下一句,以便清理LocalStorage。
onPrepare: function () { browser.executeScript("return window.localStorage.clear();"); }
然而,它没有用,而是我得到了这个错误
var template = new Error(this.message); ^未知错误: {“errorMessage”:“SecurityError:DOM异常 18" , “请求”:{ “报头”:{ “的Accept-Encoding”: “gzip的,放气”, “连接”: “保持活动”, “内容长度”: “58”, “内容类型” :“应用程序/ JSON; 字符集= UTF-8" , “主机”: “本地主机:9781”, “用户代理”:“阿帕克 他-的HttpClient / 4.5.1 (爪哇/ 1.7.0_79) “},” httpVersion “:” 1.1" , “方法”: “POST”, “后”: “{\” 脚本\ “:\” 返回 window.localStorage.clear(); \ “\ ”ARGS \“:[]}”, “URL”: “/执行”, “urlParsed”:{ “锚”: “”, “查询”: “”, “文件”: “执行”, “目录”: “/”, “路径”: “/运行”,“相对 “:”/执行 “ ”端口“: ”“, ”宿主“: ”“, ”密码“: ”“, ”用户“: ”“, ”用户信息“: ”“, ”权威“: ”“,”协议 “:” “ ”源“: ”/执行“, ”queryKey“:{}, ”块“:[ ”执行“]} ”urlOriginal“:”/会话/ dc9ce280-e15f-11e5-911a-4b92e3de49f0 /执行”}} 构建信息:版本:'2.51.0',修订版:'1af067d',时间:'2016-02-05 19:15:17'驱动程序信息:driver.version:未知
答案 0 :(得分: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);
使用名称[domain] .localstorage保存本地存储文件。在运行每个测试之前,检查您指定的文件夹中是否存在文件* .localstorage,并将其删除。这将为您清除本地存储空间。