playwright--new_context上下文

文章介绍了如何使用Playwright的同步API来创建和管理多个浏览器实例和上下文(context)。在Python代码示例中,展示了如何打开并控制不同页面,以及在同一浏览器内创建隔离的环境。这在自动化测试和网页抓取场景中非常有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

使用browser.new_context() 创建context对象,context之间是相互隔离的。
只需要创建多个context,即可同时访问不同的页面

一、打开多个页面

from playwright.sync_api import sync_playwright


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False, slow_mo=2000)
    # 创建上下文,浏览器实例
    context = browser.new_context()
    # 打开标签页1
    page1 = context.new_page()
    page1.goto("https://www.baidu.com/?tn=50000021_hao_pg")
    # 打开标签页2
    page2 = context.new_page()
    page2.goto("https://blog.youkuaiyun.com/weixin_44688529?spm=1010.2135.3001.5343")

    context.close()
    browser.close()

二、打开多个浏览器实例

from playwright.sync_api import sync_playwright


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False, slow_mo=2000)
    # 创建上下文,浏览器实例1
    context1 = browser.new_context()
    # 打开标签页1
    page1 = context1.new_page()
    page1.goto("https://blog.youkuaiyun.com/weixin_44688529?spm=1010.2135.3001.5343")
    # 创建上下文,浏览器实例2
    context2 = browser.new_context()
    # 打开标签页2
    page2 = context2.new_page()
    page2.goto("https://blog.youkuaiyun.com/weixin_44688529?spm=1010.2135.3001.5343")

### 如何使用 `playwright.chromium.launch_persistent_context` 功能 在完成 `pip install playwright` 和 `playwright install` 的前置准备工作之后,可以通过以下方式调用 Chromium 的持久化上下文功能。 #### 调用持久化上下文的核心代码 以下是实现持久化上下文的一个完整示例: ```python from playwright.sync_api import sync_playwright with sync_playwright() as p: # 使用 launch_persistent_context 方法启动持久化上下文 context = p.chromium.launch_persistent_context( user_data_dir="./userdata", # 用户数据目录路径 headless=False, # 是否无头模式,默认为 True locale="en-US", # 设置浏览器的语言环境 args=["--start-maximized"] # 可选参数列表 ) page = context.new_page() page.goto("https://example.com") print(page.title()) context.close() ``` #### 参数说明 - `user_data_dir`: 指定用户数据存储的文件夹位置。该文件夹会保存浏览历史、Cookie 等信息[^2]。 - `headless`: 控制是否启用无头模式。如果设置为 `False`,则可以看到实际的浏览器窗口[^1]。 - `locale`: 配置浏览器的语言环境,例如 `"zh-CN"` 表示中文,`"en-US"` 表示英文[^2]。 - `args`: 提供额外的命令行参数给浏览器实例。 #### 解决可能遇到的问题 1. 如果出现错误提示类似于 `Executable doesn't exist at ...`, 这通常是因为 Playwright 自带的 Chromium 浏览器未正确安装或被删除。可以尝试重新执行 `playwright install` 来修复问题[^3]。 2. 若希望避免 PyInstaller 打包后的程序弹出黑色 CMD 窗口,则需降级至 Playwright 版本 1.29.0[^4]: ```bash pip install playwright==1.29.0 ``` #### 注意事项 为了确保持久化上下文正常工作,请确认指定的 `user_data_dir` 文件夹存在并具有读写权限。如果需要跨多个测试共享同一个上下文,建议通过 fixture 或其他机制管理其生命周期[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值