44from io import BytesIO
55from pathlib import Path
66
7- from playwright .sync_api import Playwright , sync_playwright
7+ from playwright .sync_api import Page , Playwright , sync_playwright
88
99from examples import (
1010 BROWSERBASE_API_KEY ,
@@ -52,7 +52,7 @@ def zip_extension(path: Path = PATH_TO_EXTENSION, save_local: bool = False) -> B
5252 return memory_zip
5353
5454
55- def create_extension ():
55+ def create_extension () -> str :
5656 zip_data = zip_extension (save_local = True )
5757 extension : Extension = bb .extensions .create (
5858 file = ("extension.zip" , zip_data .getvalue ())
@@ -64,11 +64,27 @@ def get_extension(id: str) -> Extension:
6464 return bb .extensions .retrieve (id )
6565
6666
67- def delete_extension (id : str ):
67+ def delete_extension (id : str ) -> None :
6868 bb .extensions .delete (id )
6969
7070
71- def run (playwright : Playwright ):
71+ def check_for_message (page : Page , message : str ) -> None :
72+ # Wait for the extension to load and log a message
73+ console_messages : list [str ] = []
74+ page .on ("console" , lambda msg : console_messages .append (msg .text ))
75+ page .goto ("https://www.browserbase.com/" )
76+
77+ start = time .time ()
78+ while time .time () - start < 10 :
79+ if message in console_messages :
80+ break
81+ assert (
82+ message in console_messages
83+ ), f"Expected message not found in console logs. Messages: { console_messages } "
84+
85+
86+ def run (playwright : Playwright ) -> None :
87+ expected_message = "browserbase test extension image loaded"
7288 extension_id = None
7389
7490 # Create extension
@@ -90,21 +106,7 @@ def run(playwright: Playwright):
90106 )
91107 context = browser .contexts [0 ]
92108 page = context .pages [0 ]
93-
94- console_messages : list [str ] = []
95- page .on ("console" , lambda msg : console_messages .append (msg .text ))
96-
97- page .goto ("https://www.browserbase.com/" )
98-
99- # Wait for the extension to load and log a message
100- start = time .time ()
101- while time .time () - start < 10 :
102- if "browserbase test extension image loaded" in console_messages :
103- break
104- assert (
105- "browserbase test extension image loaded" in console_messages
106- ), f"Expected message not found in console logs. Messages: { console_messages } "
107-
109+ check_for_message (page , expected_message )
108110 page .close ()
109111 browser .close ()
110112
@@ -126,15 +128,7 @@ def run(playwright: Playwright):
126128
127129 page .goto ("https://www.browserbase.com/" )
128130
129- # Wait for the extension to load and log a message (longer timeout for proxies)
130- start = time .time ()
131- while time .time () - start < 10 :
132- if "browserbase test extension image loaded" in console_messages :
133- break
134- assert (
135- "browserbase test extension image loaded" in console_messages
136- ), f"Expected message not found in console logs. Messages: { console_messages } "
137-
131+ check_for_message (page , expected_message )
138132 page .close ()
139133 browser .close ()
140134
0 commit comments