一尘不染

PhantomJS是否默认存储任何持久性文件?

node.js

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


阅读 230

收藏
2020-07-07

共1个答案

一尘不染

是的,默认情况下会保存一种类型,这就是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

仅当您添加命令行选项时,其他所有内容才会保存。磁盘缓存位于上述目录中,必须明确设置cookie文件路径。

因此,这意味着,如果您测试的Web应用程序不使用localStorage,则可以并行运行PhantomJS。

2020-07-07