55import errno
66import logging
77import time
8- from typing import Any
8+ from typing import Any , cast
99from urllib .parse import urlparse
1010
1111from app .config import Settings
@@ -113,21 +113,25 @@ def run_browser_tier(
113113 else None
114114 )
115115
116- session .driver = Driver (
117- headless = payload .headless ,
118- enable_xvfb_virtual_display = not payload .headless ,
119- proxy = payload .proxy ,
120- profile = str (session .profile_dir ),
121- tiny_profile = True ,
122- block_images = payload .block_images ,
123- block_images_and_css = payload .block_images_and_css ,
124- wait_for_complete_page_load = payload .wait_for_complete_page_load ,
125- user_agent = payload .effective_user_agent ,
126- window_size = driver_window_size ,
127- lang = payload .lang ,
128- remove_default_browser_check_argument = True ,
116+ driver = cast (
117+ DriverProtocol ,
118+ Driver (
119+ headless = payload .headless ,
120+ enable_xvfb_virtual_display = not payload .headless ,
121+ proxy = payload .proxy ,
122+ profile = str (session .profile_dir ),
123+ tiny_profile = True ,
124+ block_images = payload .block_images ,
125+ block_images_and_css = payload .block_images_and_css ,
126+ wait_for_complete_page_load = payload .wait_for_complete_page_load ,
127+ user_agent = payload .effective_user_agent ,
128+ window_size = driver_window_size ,
129+ lang = payload .lang ,
130+ remove_default_browser_check_argument = True ,
131+ ),
129132 )
130- configure_driver (session .driver , payload , target_url , collector = collector )
133+ session .driver = driver
134+ configure_driver (driver , payload , target_url , collector = collector )
131135 browser_ready_monotonic = time .monotonic ()
132136 progress .mark (
133137 TimeoutPhase .WORK ,
@@ -146,33 +150,33 @@ def run_browser_tier(
146150 step_budget = browser_step_budget_seconds (
147151 settings , started_monotonic , browser_ready_monotonic
148152 )
149- navigate (session . driver , target_url , strategy , step_budget )
153+ navigate (driver , target_url , strategy , step_budget )
150154 wait_for_readiness (
151- session . driver ,
155+ driver ,
152156 selector = payload .wait_for_selector ,
153157 timeout_seconds = min (payload .wait_timeout_seconds , step_budget ),
154158 )
155159
156160 if payload .scroll :
157- apply_scrolling (session . driver )
161+ apply_scrolling (driver )
158162
159163 html , meta , assessment , xhr_responses = collect_page_state (
160- session . driver ,
164+ driver ,
161165 target_url ,
162166 collector ,
163167 include_xhr = False ,
164168 )
165169
166170 if assessment .challenge_detected or assessment .blocked_detected :
167- call_if_available (session . driver , "bypass_cloudflare" )
171+ call_if_available (driver , "bypass_cloudflare" )
168172 html , meta , assessment , xhr_responses = collect_page_state (
169- session . driver ,
173+ driver ,
170174 target_url ,
171175 collector ,
172176 include_xhr = True ,
173177 )
174178 else :
175- xhr_responses = harvest_xhr (collector , session . driver )
179+ xhr_responses = harvest_xhr (collector , driver )
176180
177181 if assessment .challenge_detected or assessment .blocked_detected :
178182 logger .warning (
0 commit comments