1515from webdriver_manager .core .os_manager import ChromeType
1616from selenium .webdriver .chrome .service import Service
1717
18- def create_chrome_browser (tmpdirname = None , download = True ):
19- """Create a Selenium Chrome browser with all recommended options for CI/ headless use."""
18+ def create_chrome_browser (tmpdirname = None ):
19+ """Create a Selenium Chrome browser with options for headless use."""
2020 chrome_service = Service (ChromeDriverManager (chrome_type = ChromeType .CHROMIUM ).install ())
2121 chrome_options = webdriver .ChromeOptions ()
2222 chrome_options .add_argument ('--safebrowsing-disable-download-protection' )
@@ -27,16 +27,19 @@ def create_chrome_browser(tmpdirname=None, download=True):
2727 "--ignore-certificate-errors" ,
2828 "--disable-extensions" ,
2929 "--no-sandbox" ,
30- "--disable-dev-shm-usage"
30+ "--disable-dev-shm-usage" ,
31+ "--start-maximized" ,
32+ "--no-sandbox" ,
33+ "--agressive-cache-discard" ,
34+ "--remote-debugging-port=9222" ,
3135 ]
3236 for option in options :
3337 chrome_options .add_argument (option )
34- if download and tmpdirname :
38+ if tmpdirname :
3539 prefs = {
3640 "download.default_directory" : tmpdirname ,
3741 "download.prompt_for_download" : False ,
38- "download.directory_upgrade" : True ,
39- "safebrowsing.enabled" : True
42+ "download.directory_upgrade" : True
4043 }
4144 chrome_options .add_experimental_option ("prefs" , prefs )
4245 return webdriver .Chrome (service = chrome_service , options = chrome_options )
@@ -65,7 +68,7 @@ def get_available_builds(version, manual_pause=False):
6568 logger .error (f"Unknown version: { version } " )
6669 return []
6770 try :
68- browser = create_chrome_browser (download = False )
71+ browser = create_chrome_browser ()
6972 browser .get (url )
7073 if manual_pause :
7174 input (f"\n [Manual Step] Please solve any CAPTCHAs or Cloudflare challenges in the browser window, then press Enter to continue..." )
@@ -92,7 +95,7 @@ def download_file(url, target_path, manual_pause=False, timeout=120):
9295 try :
9396 # Use a unique temp directory for this download
9497 with tempfile .TemporaryDirectory () as tmpdirname :
95- browser = create_chrome_browser (tmpdirname = tmpdirname , download = True )
98+ browser = create_chrome_browser (tmpdirname = tmpdirname )
9699 file_name = os .path .basename (target_path )
97100 browser .get (url )
98101 if manual_pause :
@@ -224,7 +227,7 @@ def download_builds(manual_pause=False):
224227 output_dir .mkdir (exist_ok = True )
225228 with tempfile .TemporaryDirectory () as tmpdirname :
226229 logger .info (f"Using temporary directory for downloads: { tmpdirname } " )
227- browser = create_chrome_browser (tmpdirname = tmpdirname , download = True )
230+ browser = create_chrome_browser (tmpdirname = tmpdirname )
228231 try :
229232 for version in BASE_URLS :
230233 version_dir = output_dir / version
0 commit comments