diff --git a/templates/python/advanced-sample/main.py b/templates/python/advanced-sample/main.py index 585c4e0..92d8b50 100644 --- a/templates/python/advanced-sample/main.py +++ b/templates/python/advanced-sample/main.py @@ -32,10 +32,8 @@ async def test_captcha_solver(ctx: kernel.KernelContext) -> None: browser = await playwright.chromium.connect_over_cdp(kernel_browser.cdp_ws_url) # Get or create context and page - contexts = browser.contexts - context = contexts[0] if contexts else await browser.new_context() - pages = context.pages - page = pages[0] if pages else await context.new_page() + context = browser.contexts[0] if browser.contexts else await browser.new_context() + page = context.pages[0] if context.pages else await context.new_page() # Access the live view. Retrieve this live_view_url from the Kernel logs in your CLI: # export KERNEL_API_KEY= diff --git a/templates/python/computer-use/main.py b/templates/python/computer-use/main.py index 10a1b45..8c9138e 100644 --- a/templates/python/computer-use/main.py +++ b/templates/python/computer-use/main.py @@ -44,8 +44,8 @@ async def cu_task( try: async with async_playwright() as playwright: browser = await playwright.chromium.connect_over_cdp(kernel_browser.cdp_ws_url) - context_obj = browser.contexts[0] - page = context_obj.pages[0] + context = browser.contexts[0] if browser.contexts else await browser.new_context() + page = context.pages[0] if context.pages else await context.new_page() # Run the sampling loop final_messages = await sampling_loop( diff --git a/templates/python/cua/computers/default/kernel.py b/templates/python/cua/computers/default/kernel.py index cf28022..5fbb7e5 100644 --- a/templates/python/cua/computers/default/kernel.py +++ b/templates/python/cua/computers/default/kernel.py @@ -23,14 +23,7 @@ def get_dimensions(self): def _get_browser_and_page(self) -> tuple[Browser, Page]: # Connect to the remote browser using the CDP URL browser = self._playwright.chromium.connect_over_cdp(self.cdp_ws_url) - # Use the first context or create one if none exists - if browser.contexts: - context = browser.contexts[0] - else: - context = browser.new_context() - # Add event listeners for page creation and closure - context.on("page", self._handle_new_page) - # Create a new page and set viewport + context = browser.contexts[0] if browser.contexts else browser.new_context() page = context.pages[0] if context.pages else context.new_page() page.set_viewport_size({"width": self.width, "height": self.height}) page.on("close", self._handle_page_close) diff --git a/templates/python/cua/computers/default/local_playwright.py b/templates/python/cua/computers/default/local_playwright.py index aab3355..6810f34 100644 --- a/templates/python/cua/computers/default/local_playwright.py +++ b/templates/python/cua/computers/default/local_playwright.py @@ -23,12 +23,13 @@ def _get_browser_and_page(self) -> tuple[Browser, Page]: env={"DISPLAY": ":0"}, ) - context = browser.new_context() + context = browser.contexts[0] if browser.contexts else browser.new_context() + # Add event listeners for page creation and closure context.on("page", self._handle_new_page) - page = context.new_page() + page = context.pages[0] if context.pages else context.new_page() page.set_viewport_size({"width": width, "height": height}) page.on("close", self._handle_page_close) diff --git a/templates/python/cua/pyproject.toml b/templates/python/cua/pyproject.toml index 3d558e8..5abc9a7 100644 --- a/templates/python/cua/pyproject.toml +++ b/templates/python/cua/pyproject.toml @@ -20,7 +20,7 @@ dependencies = [ "kernel>=0.6.0", "playwright==1.52.0", "pydantic==2.11.7", - "pydantic_core==2.35.1", + "pydantic_core==2.33.2", "pyee==13.0.0", "python-dotenv==1.1.0", "requests==2.32.4",