56 lines
1.9 KiB
Python

from webdriver_manager.core.driver import Driver
from webdriver_manager.core.logger import log
from webdriver_manager.core.os_manager import OSType, ChromeType
class EdgeChromiumDriver(Driver):
def __init__(
self,
name,
driver_version,
url,
latest_release_url,
http_client,
os_system_manager
):
super(EdgeChromiumDriver, self).__init__(
name,
driver_version,
url,
latest_release_url,
http_client,
os_system_manager
)
def get_stable_release_version(self):
"""Stable driver version when browser version was not determined."""
stable_url = self._latest_release_url.replace("LATEST_RELEASE", "LATEST_STABLE")
resp = self._http_client.get(url=stable_url)
return resp.text.rstrip()
def get_latest_release_version(self) -> str:
determined_browser_version = self.get_browser_version_from_os()
log(f"Get LATEST {self._name} version for Edge {determined_browser_version}")
edge_driver_version_to_download = (
self.get_stable_release_version()
if (determined_browser_version is None)
else determined_browser_version
)
major_edge_version = edge_driver_version_to_download.split(".")[0]
os_type = self._os_system_manager.get_os_type()
latest_release_url = {
OSType.WIN
in os_type: f"{self._latest_release_url}_{major_edge_version}_WINDOWS",
OSType.MAC
in os_type: f"{self._latest_release_url}_{major_edge_version}_MACOS",
OSType.LINUX
in os_type: f"{self._latest_release_url}_{major_edge_version}_LINUX",
}[True]
resp = self._http_client.get(url=latest_release_url)
return resp.text.rstrip()
def get_browser_type(self):
return ChromeType.MSEDGE