11import logging
22import argparse
3- import sys
43from selenium import webdriver
54from selenium .webdriver .common .by import By
65from selenium .webdriver .support .ui import WebDriverWait
@@ -14,11 +13,14 @@ def run_headless_test():
1413 if args .browser_type .lower () == 'chrome' :
1514 options = webdriver .ChromeOptions ()
1615 options .add_argument ("--headless=new" )
17- driver = webdriver .Chrome (options = options )
16+ options .set_capability ("goog:loggingPrefs" , {"browser" : "ALL" })
17+ service = webdriver .ChromeService (log_output = "chrome-driver.log" )
18+ driver = webdriver .Chrome (options = options , service = service )
1819 elif args .browser_type .lower () == 'firefox' :
1920 options = webdriver .FirefoxOptions ()
2021 options .add_argument ("--headless" )
21- driver = webdriver .Firefox (options = options )
22+ service = webdriver .FirefoxService (log_output = "firefox-driver.log" , service_args = ['--log' , 'debug' ])
23+ driver = webdriver .Firefox (options = options , service = service )
2224 else :
2325 logging .error ("Invalid browser type. Supported types are 'chrome' and 'firefox'." )
2426 return
@@ -37,6 +39,15 @@ def run_headless_test():
3739 with open (result_file , "w" , encoding = "utf-8" ) as file :
3840 file .write (html )
3941
42+ if args .browser_type .lower () == 'chrome' :
43+ logs = driver .get_log ('browser' )
44+ # Save console logs to a file for easier debugging
45+ with open ("chrome-console.log" , "w" , encoding = "utf-8" ) as f :
46+ for entry in logs :
47+ f .write (f"[{ entry ['level' ]} ] { entry ['message' ]} \n " )
48+ elif args .browser_type .lower () == 'firefox' :
49+ print ("Console logs cannot be retrieved from Firefox via get_log('browser'). This feature is only supported in Chrome." )
50+
4051 finally :
4152 driver .quit ()
4253
0 commit comments