PhantomJS默认存储任何持久文件吗?

时间:2014-11-19 17:24:33

标签: node.js phantomjs

作为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可以自行累积数据的所有位置。

我也研究过how PhantomJS handles cookies

1 个答案:

答案 0 :(得分:3)

是的,默认情况下会保存一种类型,这是localStorage数据库。

  • 在Windows 7上:C:\Users\<user>\AppData\Local\Ofi Labs\PhantomJS
  • 在Windows 8上:C:\Ofi Labs\PhantomJs
  • 在Linux上:/home/<user>/.qws/share/data/Ofi Labs/PhantomJS

只有在添加commandline options时才会保存其他所有内容。磁盘缓存位于上述目录中,并且必须明确设置cookie文件路径。

所以这意味着如果您测试的Web应用程序没有使用localStorage,那么您可以并行运行PhantomJS。