我正在尝试制作一个单独的测试用例来试验PhantomJS localStorage
行为,但在我的testCase中,localStorage似乎并不持久。
这是PhantomJS脚本:
var page = require('webpage').create();
page.open('http://localhost:8080/myapp/test.html', function() {
var x;
x = page.evaluate(function() {
return localStorage.getItem("foo");
});
console.log(x);
phantom.exit();
});
当test.html调用localStorage.setItem("foo", "bar")
时,脚本会显示“bar”,正如我所期望的那样。但是,当我从test.html中删除localStorage.setItem
调用时,脚本会打印出一个空行 - 即使该项目应该位于上一次调用的localStorage中。
通过对我的真实应用程序的更复杂的测试,localStorage 是持久的。我不确定是什么触发器使localStorage的更改坚持使用PhantomJS。
我在Windows上使用PhantomJS 1.9.7,在Linux上使用1.9.1获得了相同的结果。
答案 0 :(得分:3)
可能与时间有关。如果您太快退出幻像,则可能无法保留对localStorage的更改。将phantom.exit()
更改为setTimeout(phantom.exit, 1500)
似乎有效。