Updated script that can be controled by Nodejs web app
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
from webdriver_manager.core.driver import Driver
|
||||
from webdriver_manager.core.logger import log
|
||||
|
||||
|
||||
class GeckoDriver(Driver):
|
||||
def __init__(
|
||||
self,
|
||||
name,
|
||||
driver_version,
|
||||
url,
|
||||
latest_release_url,
|
||||
mozila_release_tag,
|
||||
http_client,
|
||||
os_system_manager
|
||||
):
|
||||
super(GeckoDriver, self).__init__(
|
||||
name,
|
||||
driver_version,
|
||||
url,
|
||||
latest_release_url,
|
||||
http_client,
|
||||
os_system_manager,
|
||||
)
|
||||
self._mozila_release_tag = mozila_release_tag
|
||||
|
||||
def get_latest_release_version(self) -> str:
|
||||
determined_browser_version = self.get_browser_version_from_os()
|
||||
log(f"Get LATEST {self._name} version for {determined_browser_version} firefox")
|
||||
resp = self._http_client.get(
|
||||
url=self.latest_release_url,
|
||||
headers=self.auth_header
|
||||
)
|
||||
return resp.json()["tag_name"]
|
||||
|
||||
def get_driver_download_url(self, os_type):
|
||||
"""Like https://github.com/mozilla/geckodriver/releases/download/v0.11.1/geckodriver-v0.11.1-linux64.tar.gz"""
|
||||
driver_version_to_download = self.get_driver_version_to_download()
|
||||
log(f"Getting latest mozilla release info for {driver_version_to_download}")
|
||||
resp = self._http_client.get(
|
||||
url=self.tagged_release_url(driver_version_to_download),
|
||||
headers=self.auth_header
|
||||
)
|
||||
assets = resp.json()["assets"]
|
||||
name = f"{self.get_name()}-{driver_version_to_download}-{os_type}."
|
||||
output_dict = [
|
||||
asset for asset in assets if asset["name"].startswith(name)]
|
||||
return output_dict[0]["browser_download_url"]
|
||||
|
||||
@property
|
||||
def latest_release_url(self):
|
||||
return self._latest_release_url
|
||||
|
||||
def tagged_release_url(self, version):
|
||||
return self._mozila_release_tag.format(version)
|
||||
|
||||
def get_browser_type(self):
|
||||
return "firefox"
|
Reference in New Issue
Block a user