22import argparse
33import atexit
44import base64
5+ import logging
56import os .path
67import platform
78import re
1516
1617import browsers
1718import requests
18- from requests import Response , RequestException
19+ from requests import RequestException , Response
1920from selenium import webdriver
2021from selenium .webdriver .chrome .options import Options
2122from selenium .webdriver .chrome .service import Service
2223from webdriver_manager .core .os_manager import ChromeType , OperationSystemManager
2324
25+ logging .getLogger ().setLevel (logging .DEBUG )
26+
2427__version__ = "0.0.15"
2528
2629PATH_TO_HTML2PDF_JS = os .path .join (
4144
4245class ChromeDriverManager :
4346 def get_chrome_driver (self , path_to_cache_dir : str ):
44- chrome_version = self .get_chrome_version ()
47+ for browser in browsers .browsers ():
48+ print (f"html2print: browser { browser ['browser_type' ]} :" ) # noqa: T201
49+ print (f" - path { browser ['path' ]} " ) # noqa: T201
50+ print (f" - display_name { browser ['display_name' ]} " ) # noqa: T201
51+ print (f" - version { browser ['version' ]} :" ) # noqa: T201
52+
53+ if sys .platform == "linux" :
54+ from .my_linux_browsers import browsers as bb
55+
56+ for browser in bb .browsers ():
57+ print (f"my_linux_browsers: browser { browser ['browser_type' ]} :" ) # noqa: T201
58+ print (f" - path { browser ['path' ]} " ) # noqa: T201
59+ print ( # noqa: T201
60+ f" - display_name { browser ['display_name' ]} "
61+ )
62+ print (f" - version { browser ['version' ]} :" ) # noqa: T201
63+
64+ chrome_browser_info = browsers .get ("chrome" )
65+ chrome_version = chrome_browser_info ["version" ]
66+ chrome_path = chrome_browser_info ["path" ]
4567
4668 # If Web Driver Manager cannot detect Chrome, it returns None.
4769 if chrome_version is None :
@@ -55,6 +77,9 @@ def get_chrome_driver(self, path_to_cache_dir: str):
5577 print ( # noqa: T201
5678 f"html2print: Installed Chrome version: { chrome_version } "
5779 )
80+ print ( # noqa: T201
81+ f"html2print: Installed Chrome path: { chrome_path } "
82+ )
5883
5984 system_map = {
6085 "Windows" : "win32" ,
@@ -181,8 +206,9 @@ def send_http_get_request(url, params=None, **kwargs) -> Response:
181206 f"html2print: "
182207 f"failed to get response for URL: { url } with error: { last_error } "
183208 )
184- raise RequestException (f"GET request failed after 3 attempts: { url } " ) from last_error
185-
209+ raise RequestException (
210+ f"html2print: GET request failed after 3 attempts: { url } "
211+ ) from last_error
186212
187213 @staticmethod
188214 def get_chrome_version ():
@@ -329,7 +355,12 @@ def create_webdriver(
329355 else :
330356 service = Service (path_to_chrome )
331357
358+ path_to_chrome_browser = ""
359+ path_to_chrome_browser = browsers .get ("chrome" )["path" ]
360+ print (f"html2print: Chrome available at path: { path_to_chrome_browser } " ) # noqa: T201
361+
332362 webdriver_options = Options ()
363+ webdriver_options .binary_location = path_to_chrome_browser
333364 webdriver_options .add_argument ("start-maximized" )
334365 webdriver_options .add_argument ("disable-infobars" )
335366 # Doesn't seem to be needed.
@@ -462,7 +493,7 @@ def main():
462493 if browsers .get ("chrome" ) is not None :
463494 path_to_chrome_browser = browsers .get ("chrome" )["path" ]
464495 print ( # noqa: T201
465- f"html2print: Chrome available at path:{ path_to_chrome_browser } "
496+ f"html2print: Chrome available at path: { path_to_chrome_browser } "
466497 )
467498 sys .exit (0 )
468499
0 commit comments