Niy*_*yaz 33 javascript cookies phantomjs
PhantomJS是否支持cookie?如果是,我在哪里可以找到API详细信息?
现在搜索一段时间后,我无法弄明白.
jos*_*736 43
是的,从1.7开始, Phantom具有完整的cookie处理功能,默认启用.Cookie会在整个过程中保留.
如果您希望在Phantom运行期间保留cookie,可以使用命令行选项cookies-file指定存储持久性cookie的位置.
--cookies-file=/path/to/cookies.txt指定用于存储持久性cookie的文件名.
在页面脚本中,您可以使用常规document.cookie属性.与在浏览器中一样,此属性返回类似于将在Cookie:HTTP标头中发送的字符串的字符串.
在Phantom脚本中,您可以访问页面的cookie(受通常的原始限制)page.cookies,返回对象.
您还可以使用访问所有 Cookie(来自所有域)phantom.cookies.
var page = require('webpage').create();
page.open('http://example.com', function (status) {
page.evaluate(function() {
document.cookie; // => "test=test-value;"
});
page.cookies; // => [{
// domain: "example.com",
// expires: "Wed, 08 Jan 2014 00:00:00 GMT"
// httponly: false,
// name: "test",
// path: "/",
// secure: false,
// value: "test-value"
// }]
phantom.cookies; // contains ALL cookies in Phantom's jar
});
Run Code Online (Sandbox Code Playgroud)
要添加/修改/删除Cookie,使用addCookie,deleteCookie和clearCookies任何一个的方法,WebPage对象或phantom对象.
使用WebPage对象的方法时,只修改页面可见的cookie.阻止访问其他域.
但是,使用phantomcookie方法可以访问所有 cookie. phantom.addCookie需要域(WebPage.addCookie如果未指定域,则假定当前域),并phantom.deleteCookie删除与指定名称匹配的任何 cookie.
joh*_*odo 12
它通过WebPage.addCookie() -这亦不起作用既不是我,也不别人.
您可以使用此代替:
phantom.addCookie({
'name': 'mycookie',
'value': 'something really important',
'domain': 'example.com'
})
page.open('http://example.com/url/path/', function() {
console.log(page.cookies);
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36542 次 |
| 最近记录: |