4
4
from io import BytesIO
5
5
from pathlib import Path
6
6
7
- from playwright .sync_api import Playwright , sync_playwright
7
+ from playwright .sync_api import Page , Playwright , sync_playwright
8
8
9
9
from examples import (
10
10
BROWSERBASE_API_KEY ,
@@ -52,7 +52,7 @@ def zip_extension(path: Path = PATH_TO_EXTENSION, save_local: bool = False) -> B
52
52
return memory_zip
53
53
54
54
55
- def create_extension ():
55
+ def create_extension () -> str :
56
56
zip_data = zip_extension (save_local = True )
57
57
extension : Extension = bb .extensions .create (
58
58
file = ("extension.zip" , zip_data .getvalue ())
@@ -64,11 +64,27 @@ def get_extension(id: str) -> Extension:
64
64
return bb .extensions .retrieve (id )
65
65
66
66
67
- def delete_extension (id : str ):
67
+ def delete_extension (id : str ) -> None :
68
68
bb .extensions .delete (id )
69
69
70
70
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"
72
88
extension_id = None
73
89
74
90
# Create extension
@@ -90,21 +106,7 @@ def run(playwright: Playwright):
90
106
)
91
107
context = browser .contexts [0 ]
92
108
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 )
108
110
page .close ()
109
111
browser .close ()
110
112
@@ -126,15 +128,7 @@ def run(playwright: Playwright):
126
128
127
129
page .goto ("https://www.browserbase.com/" )
128
130
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 )
138
132
page .close ()
139
133
browser .close ()
140
134
0 commit comments