puppeteer 无法设置cookie ?

直接上全部代码:

const puppeteer = require('puppeteer');

; (async () => {
    const browser = await puppeteer.launch({
        headless: false,        // 开启界面
        devtools: true,         // 自动开启 F12
    });

    const page = await browser.newPage();       // 新建页面
    await page.waitFor(500);                    // 暂停 500ms

    var cookie = {
        name: "ccc",
        value: "cccccccccccccccccc",
        domain: "baidu.com",
        path: "/",
        expires: 7 * 24 * 60 * 60 * 1000
    };
    await page.setCookie(cookie);       // 设置cookie

    await page.waitFor(500);
    await page.goto('http://baidu.com/');       // 打开页面
})();

然后在浏览器的F12 你始终找不到 设置的这个cookie, 百度的好多,结果都是一群垃圾复制别人的, 按部就班,一点都不改的,demo也是照着google 的官方demo抄的, 在github项目里也没有找到 关于设置cookie 的demo。

有哪位大佬有设置cookie成功的吗?

阅读 18.6k
3 个回答

F12找不到是因为你的过cookie期了。

new Date(7 * 24 * 60 * 60 * 1000)//Thu Jan 08 1970 08:00:00 GMT+0800 (中国标准时间)

其实自己起个本地的http服务 拿puppeteer访问下自己服务 调试一下就知道了。
首先你代码中的传给setCookie方法的domain属性,域名最前面加一个.
其次需要确保你使用puppeteer的goto方法访问的url的domain与你设置cookie时的domain一致,注意很多网站你虽然访问的是http://a.com,但实际上会被302到https://www.a.com,不要访问这种会被302的url。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题