需要为PhantomJS节点桥指定配置文件

时间:2013-11-21 04:42:00

标签: javascript node.js phantomjs

首先,我正在使用带phantomJS bridge的节点。

PhantomJS是v1.9.2

节点是v0.10.15

我的问题是我无法将配置文件设置为phantomJS-node。

基本上我的代码是:

var phantom = require("node-phantom");

phantom.create( function ( err, ph ){

    ph.createPage( function ( err, page ){

        page.set( "settings.config", "./myConfig.json" );

        page.get( "settings", function( err, settings ){
            console.log(settings);
        });

    });
});

我只在console.log(settings);

中获取默认设置
{ XSSAuditingEnabled: false,
  javascriptCanCloseWindows: true,
  javascriptCanOpenWindows: true,
  javascriptEnabled: true,
  loadImages: true,
  localToRemoteUrlAccessEnabled: false,
  userAgent: 'Mozilla/5.0 (Macintosh; PPC Mac OS X) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.2 Safari/534.34',
  webSecurityEnabled: true }

我已尝试过很多东西将我的配置文件分配给phantomJS或我的页面实例,但没有运气。

set('settings.config')phantom上的

phant,但没有任何结果。

我也尝试过,正如在文档中说的那样:

phantom.create("--config=./path/to/config.json", function ( err, ph ){
    ...
});

错误,需要一个函数作为第一个参数。所以我试过了:

phantom.create(function ( err, ph ){
    ...
}, {"--config":"./path/to/config.json"});

仍然没有运气。

我错过了什么吗?

感谢您的时间。

编辑:我没有使用正确的文档(-_-)......

所以使用node-phantom(我最终使用的那个)的正确方法是:

phantom.create( callback, { parameters : {"config" : "path/to/file.json" }}); 

我可以证实,它现在正在运作。

1 个答案:

答案 0 :(得分:2)

据我所知,你找不到合适的文档......在Node.js上有两个主要的PhantomJS软件包:

我看到你正在使用 node-phantom

var phantom = require("node-phantom");

但您正在尝试使用幻像功能。正如它在 phantom 的文档中所写:

  

不能直接获取/设置属性,而是使用p.get('version',callback)或p.page.set('viewportSize',{width:640,height:480})等。嵌套可以通过在键中包含点来访问对象,例如p.page.set('settings.loadImages',false)

但是,您使用的包 node-phantom 似乎没有字面上相同的功能。

希望它有所帮助!