作为PhantomJS的新用户,我想确保自己了解PhantomJS如何处理HTTP请求中累积的数据持久性。
我的问题是: 默认情况下,PhantomJS是否持久存储任何数据 (即,一个简单的示例,您没有require('fs')在脚本中的任何地方使用该请求来存储请求,而是将其转储到STDOUT)。我假设来自page.evaluate()调用的所有工作都在内存中完成。
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 thisScript.js www.example.com
我知道您可以将页面保存到文件中,我只想确保我知道PhantomJS可以自行存储数据的所有位置。
是的,默认情况下会保存一种类型,这就是localStorage数据库。
localStorage
C:\Users\<user>\AppData\Local\Ofi Labs\PhantomJS
C:\Ofi Labs\PhantomJs
/home/<user>/.qws/share/data/Ofi Labs/PhantomJS
仅当您添加命令行选项时,其他所有内容才会保存。磁盘缓存位于上述目录中,必须明确设置cookie文件路径。
因此,这意味着,如果您测试的Web应用程序不使用localStorage,则可以并行运行PhantomJS。