You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Playwright启动Chromium保留上次Cookie?能否像Selenium那样复用状态?

Playwright-Chromium 保留浏览器状态(含Cookie)的实现方法

Playwright-Chromium完全支持保留浏览器上次的状态(包括Cookie、登录会话、缓存等),核心实现方式是指定固定的用户数据目录(userDataDir),让Chromium每次启动时加载同一目录下的本地存储数据,和你用Selenium时的原理一致。

实现方式1:通过launch指定用户数据目录

这种方式适合需要手动管理浏览器实例的场景,在启动Chromium时明确指定user_data_dir参数:

Python 示例

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    # 启动Chromium并指定用户数据目录
    browser = p.chromium.launch(
        user_data_dir="./my_chromium_profile",  # 自定义本地目录路径
        headless=False  # 可选,首次登录建议开启可视化,后续可改为True
    )
    page = browser.new_page()
    
    # 执行操作(比如登录网站,Cookie会自动保存到指定目录)
    page.goto("https://your-target-site.com")
    # ... 其他业务逻辑
    
    browser.close()

JavaScript 示例

const { chromium } = require('playwright');

(async () => {
    const browser = await chromium.launch({
        userDataDir: './my_chromium_profile',
        headless: false
    });
    const page = await browser.newPage();
    
    await page.goto('https://your-target-site.com');
    // ... 业务操作
    
    await browser.close();
})();

实现方式2:使用launch_persistent_context(更便捷)

Playwright提供了专门的持久化上下文API,会自动处理状态保存,无需手动管理浏览器实例的关闭逻辑:

Python 示例

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    # 启动持久化上下文,自动保留状态
    context = p.chromium.launch_persistent_context(
        "./my_chromium_profile",
        headless=False
    )
    # 获取现有页面或新建页面
    page = context.pages()[0] if context.pages() else context.new_page()
    
    page.goto("https://your-target-site.com")
    # ... 业务操作
    
    context.close()  # 关闭上下文时自动保存所有状态

JavaScript 示例

const { chromium } = require('playwright');

(async () => {
    const context = await chromium.launchPersistentContext('./my_chromium_profile', {
        headless: false
    });
    const page = context.pages()[0] || await context.newPage();
    
    await page.goto('https://your-target-site.com');
    // ... 业务操作
    
    await context.close();
})();

关键注意事项

  • 若指定的目录不存在,Playwright会自动创建该目录;若目录已存在,则直接加载其中的历史状态(包括之前的Cookie)。
  • 不要随意删除指定的用户数据目录,否则所有保存的状态(Cookie、登录会话等)都会丢失。
  • 不同浏览器的用户数据目录不通用,Chromium的目录只能用于Playwright-Chromium,不能复用给Firefox或WebKit。
  • 首次操作需要完成登录等流程,后续启动时会自动加载已保存的Cookie,无需重复登录。

内容的提问来源于stack exchange,提问作者blackantt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 20:25:23