1010
1111from sentience import SentienceBrowser
1212
13+ # Use a data URL to avoid network dependency (DNS resolution can fail in CI)
14+ # This is a minimal valid HTML page
15+ TEST_PAGE_URL = "data:text/html,<html><head><title>Test</title></head><body><h1>Video Recording Test</h1></body></html>"
16+
1317
1418def test_video_recording_basic ():
1519 """Test basic video recording functionality"""
@@ -20,7 +24,7 @@ def test_video_recording_basic():
2024 browser .start ()
2125
2226 try :
23- browser .page .goto ("https://example.com" )
27+ browser .page .goto (TEST_PAGE_URL )
2428 browser .page .wait_for_load_state ("domcontentloaded" )
2529
2630 # Small delay to ensure page is fully loaded and video recording is stable
@@ -76,7 +80,7 @@ def test_video_recording_custom_resolution():
7680 browser .start ()
7781
7882 try :
79- browser .page .goto ("https://example.com" )
83+ browser .page .goto (TEST_PAGE_URL )
8084 browser .page .wait_for_load_state ("domcontentloaded" )
8185
8286 video_path = browser .close ()
@@ -98,7 +102,7 @@ def test_video_recording_custom_output_path():
98102 browser .start ()
99103
100104 try :
101- browser .page .goto ("https://example.com" )
105+ browser .page .goto (TEST_PAGE_URL )
102106 browser .page .wait_for_load_state ("domcontentloaded" )
103107
104108 video_path = browser .close (output_path = str (custom_path ))
@@ -121,7 +125,7 @@ def test_video_recording_nested_output_path():
121125 browser .start ()
122126
123127 try :
124- browser .page .goto ("https://example.com" )
128+ browser .page .goto (TEST_PAGE_URL )
125129 browser .page .wait_for_load_state ("domcontentloaded" )
126130
127131 video_path = browser .close (output_path = str (nested_path ))
@@ -141,7 +145,7 @@ def test_no_video_recording_when_disabled():
141145 browser .start ()
142146
143147 try :
144- browser .page .goto ("https://example.com" )
148+ browser .page .goto (TEST_PAGE_URL )
145149 browser .page .wait_for_load_state ("networkidle" , timeout = 30000 )
146150
147151 video_path = browser .close ()
@@ -163,7 +167,7 @@ def test_video_recording_directory_auto_created():
163167 browser .start ()
164168
165169 try :
166- browser .page .goto ("https://example.com" )
170+ browser .page .goto (TEST_PAGE_URL )
167171 browser .page .wait_for_load_state ("domcontentloaded" )
168172
169173 video_path = browser .close ()
@@ -187,7 +191,7 @@ def test_video_recording_with_pathlib():
187191 browser .start ()
188192
189193 try :
190- browser .page .goto ("https://example.com" )
194+ browser .page .goto (TEST_PAGE_URL )
191195 browser .page .wait_for_load_state ("domcontentloaded" )
192196
193197 video_path = browser .close (output_path = output_path ) # Pass Path object
@@ -212,7 +216,7 @@ def test_video_recording_multiple_sessions():
212216 browser .start ()
213217
214218 try :
215- browser .page .goto ("https://example.com" )
219+ browser .page .goto (TEST_PAGE_URL )
216220 browser .page .wait_for_load_state ("networkidle" , timeout = 30000 )
217221
218222 output_path = video_dir / f"video_{ i } .webm"
@@ -240,7 +244,7 @@ def test_video_recording_default_resolution():
240244 browser .start ()
241245
242246 try :
243- browser .page .goto ("https://example.com" )
247+ browser .page .goto (TEST_PAGE_URL )
244248 browser .page .wait_for_load_state ("domcontentloaded" )
245249 browser .close ()
246250 except Exception :
@@ -255,7 +259,7 @@ def test_video_recording_with_context_manager():
255259
256260 # Use context manager WITHOUT calling close() manually
257261 with SentienceBrowser (headless = True , record_video_dir = str (video_dir )) as browser :
258- browser .page .goto ("https://example.com" )
262+ browser .page .goto (TEST_PAGE_URL )
259263 browser .page .wait_for_load_state ("domcontentloaded" )
260264 # Don't call browser.close() - let context manager handle it
261265
0 commit comments