2015-06-20 218 views
0

我在Windows 8.1上运行最新版本的PhantomJS。这里是我的代码:PhantomJS不保存cookies

console.log('cookies: ',phantom.cookies); 

phantom.addCookie({ 
    domain:'google.com', 
    path:'/', 
    expires:(new Date()).getTime() + (1000 * 60 * 60), 
    name:'test', 
    value:'value' 
}); 

phantom.exit(); 

我打过电话这样的:

phantomjs test.js --cookies-file=cookies.txt 

phantomjs test.js --cookies-file="C:\path\cookies.txt" 

无论哪种方式,cookies.txt没有被创建和phantom.cookies是空的。如何让PhantomJS保存Cookie?

+0

PhantomJS具有与节点不同的执行环境。 PhantomJS和node.js之间有桥梁,但是这个脚本不使用这样的桥梁。 –

回答

0

--cookies-file应该是PhantomJS的一个选项,而不是您的脚本。 PhantomJS还支持将命令行参数传递给脚本。您需要翻转顺序:

phantomjs --cookies-file=cookies.txt test.js 

当你一旦执行此行,phantom.cookies将是空的,但cookie.txt的将一个条目来创建。只有当你第二次执行它时,你才会看到phantom.cookies不是空的。

在您的脚本启动之前会读取cookie jar,并在您退出脚本后进行编写。