作为PhantomJS的新用户,我想确定我了解PhantomJS如何处理从HTTP请求累积的任何数据持久性。
我的问题是:默认情况下PhantomJS是否会持久存储任何数据(即一个简单的示例,您不会在脚本中的任何位置使用require('fs')
来存储请求,只是将其转储出去到STDOUT
)。我假设page.evaluate()
调用的所有工作都是在内存中完成的。
这是一个简单的例子:
var page = require('webpage').create(),
system = require('system'),
address;
if(system.args.length != 2)
{
console.log('Usage: phantomjs thisFile.js URL');
phantom.exit(1);
}
else
{
address = system.args[1];
page.open(address, function (status)
{
if(status !== 'success')
{
console.log('Unable to load the address!');
phantom.exit(1);
}
else
{
// Wait for the js to finish loading
window.setTimeout(function(){
var results = page.evaluate(function(){
return document.documentElement.innerHTML;
});
console.log(results); // This would be to stdout
phantom.exit(0);
}, 200);
}
console.log("Done.");
});
}
此脚本将由phantomjs thisScript.js www.example.com
。
我知道您可以将页面保存到文件中,我只是想确定我知道PhantomJS可以自行累积数据的所有位置。
答案 0 :(得分:3)
是的,默认情况下会保存一种类型,这是localStorage
数据库。
C:\Users\<user>\AppData\Local\Ofi Labs\PhantomJS
C:\Ofi Labs\PhantomJs
/home/<user>/.qws/share/data/Ofi Labs/PhantomJS
只有在添加commandline options时才会保存其他所有内容。磁盘缓存位于上述目录中,并且必须明确设置cookie文件路径。
所以这意味着如果您测试的Web应用程序没有使用localStorage,那么您可以并行运行PhantomJS。