与Casperjs清除的localStorage(Clear localstorage with C

2019-07-04 15:57发布

我使用casperjs做使用localStorage的一个backbonejs应用程序的某些testings。

我的问题是,随着casperjs测试时我无法清除的localStorage。

我一直在尝试使用localStorage.clear(); 在我的卡斯帕文件,但没有开始时被清除。

Answer 1:

我发现这个问题的解决方法由以下目录之一删除文件* .localstorage:

Windows的C:\用户\ YOUR_USER \应用程序数据\本地\ OFI实验室\ PhantomJS \

的Mac OS X:/用户/ YOUR_USER /库/ Application Support / OFI实验室/ PhantomJS

Linux系统:/home/YOUR_USER/.local/share/data/Ofi实验室/ PhantomJS



Answer 2:

怎么样加载页面后运行的呢?

casper.evaluate(function() {
  localStorage.clear();
}, {});


Answer 3:

PhantomJS不清除localStorage的正确。 localStorage.clear(); 不工作(至少不可靠)

你要删除的文件系统的“.localstorage”文件。 该fs.remove命令你打开页面之前调用。 该文件,而页面打开Phantomjs锁。

我做到了,在我们这样的项目:

function clearStorage() {
var fs = require('fs');
var system = require('system');
var myDomain = [I get this value from the commandline Parameter I give to CasperJS];

if(system.os.name === 'windows') {
    var userName = system.env['USERPROFILE'].split('\\')[2];
    var localstoragePath = 'C:/Users/' + userName + '/AppData/Local/Ofi Labs/PhantomJS/';
    var localStorageFilename = myDomain.replace('://', '_').replace('/', '') + '_0.localstorage';
} else {
    var userName = system.env['USER'];
    var localstoragePath = '/home/' + userName + '/.local/share/Ofi Labs/PhantomJS/';
    var localStorageFilename = myDomain.replace('://', '_') + '_0.localstorage'; //Linux does not have the last "/" so no replace needed for that
}

if(fs.exists(localstoragePath + localStorageFilename)) {
    fs.remove(localstoragePath + localStorageFilename, function(err) {
        if (err) {
            casper.echo(err);
        }
        casper.echo("File deleted successfully!");
    });
}

}



文章来源: Clear localstorage with Casperjs