PhantomJS不能持续保持localStorage

时间:2014-05-05 18:07:31

标签: phantomjs

我正在尝试制作一个单独的测试用例来试验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获得了相同的结果。

1 个答案:

答案 0 :(得分:3)

可能与时间有关。如果您太快退出幻像,则可能无法保留对localStorage的更改。将phantom.exit()更改为setTimeout(phantom.exit, 1500)似乎有效。