PhantomJS没有持续保存localStorage[英] PhantomJS not persisting localStorage consistently

问题描述

我正在尝试制作一个独立的测试用例来试验 PhantomJS localStorage 行为,但在我的测试用例中,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 是持续存在的.我不确定使用 PhantomJS 对 localStorage 进行更改的触发器是什么.

我在 Windows 上使用 PhantomJS 1.9.7 和在 Linux 上使用 1.9.1 得到了相同的结果.

推荐答案

可能和时间有关.如果您退出 phantom 太快,则对 localStorage 的更改可能不会保留.将 phantom.exit() 更改为 setTimeout(phantom.exit, 1500) 似乎可行.

本文地址:https://www.itbaoku.cn/post/1739909.html