我使用casperjs做使用localStorage的一个backbonejs应用程序的某些testings。
我的问题是,随着casperjs测试时我无法清除的localStorage。
我一直在尝试使用localStorage.clear();
在我的卡斯帕文件,但没有开始时被清除。
我使用casperjs做使用localStorage的一个backbonejs应用程序的某些testings。
我的问题是,随着casperjs测试时我无法清除的localStorage。
我一直在尝试使用localStorage.clear();
在我的卡斯帕文件,但没有开始时被清除。
我发现这个问题的解决方法由以下目录之一删除文件* .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
怎么样加载页面后运行的呢?
casper.evaluate(function() {
localStorage.clear();
}, {});
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!");
});
}
}