From 8414bafd863e1f6b64a269cbcbf3720838690fe5 Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Mon, 28 Jun 2021 21:26:04 +0200 Subject: [PATCH] docs(python): add example for testing Chromium extensions (#7338) --- docs/src/chrome-extensions.md | 55 +++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/docs/src/chrome-extensions.md b/docs/src/chrome-extensions.md index feec932065..90d5c7589f 100644 --- a/docs/src/chrome-extensions.md +++ b/docs/src/chrome-extensions.md @@ -27,3 +27,58 @@ const { chromium } = require('playwright'); await browserContext.close(); })(); ``` + +```python async +import asyncio +from playwright.async_api import async_playwright + +path_to_extension = "./my-extension" +user_data_dir = "/tmp/test-user-data-dir" + + +async def run(playwright): + context = await playwright.chromium.launch_persistent_context( + user_data_dir, + headless=False, + args=[ + f"--disable-extensions-except={path_to_extension}", + f"--load-extension={path_to_extension}", + ], + ) + background_page = context.background_pages[0] + # Test the background page as you would any other page. + await context.close() + + +async def main(): + async with async_playwright() as playwright: + await run(playwright) + + +asyncio.run(main()) +``` + +```python sync +from playwright.async_api import sync_playwright + +path_to_extension = "./my-extension" +user_data_dir = "/tmp/test-user-data-dir" + + +def run(playwright): + context = playwright.chromium.launch_persistent_context( + user_data_dir, + headless=False, + args=[ + f"--disable-extensions-except={path_to_extension}", + f"--load-extension={path_to_extension}", + ], + ) + background_page = context.background_pages[0] + # Test the background page as you would any other page. + context.close() + + +with sync_playwright() as playwright: + run(playwright) +```