1
1
import logging
2
2
import argparse
3
- import sys
4
3
from selenium import webdriver
5
4
from selenium .webdriver .common .by import By
6
5
from selenium .webdriver .support .ui import WebDriverWait
@@ -14,11 +13,14 @@ def run_headless_test():
14
13
if args .browser_type .lower () == 'chrome' :
15
14
options = webdriver .ChromeOptions ()
16
15
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 )
18
19
elif args .browser_type .lower () == 'firefox' :
19
20
options = webdriver .FirefoxOptions ()
20
21
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 )
22
24
else :
23
25
logging .error ("Invalid browser type. Supported types are 'chrome' and 'firefox'." )
24
26
return
@@ -37,6 +39,15 @@ def run_headless_test():
37
39
with open (result_file , "w" , encoding = "utf-8" ) as file :
38
40
file .write (html )
39
41
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
+
40
51
finally :
41
52
driver .quit ()
42
53
0 commit comments