56 lines
1.9 KiB
Python
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
|