diff --git a/README.md b/README.md index 23b8b36924c..99a6b936941 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[](https://github.com/seleniumbase/SeleniumBase/blob/master/README.md) +[](https://github.com/seleniumbase/SeleniumBase/blob/master/README.md) [ ](https://github.com/seleniumbase/SeleniumBase/releases) [ ](https://dev.azure.com/seleniumbase/seleniumbase/_build/latest?definitionId=1&branchName=master) [ ](https://travis-ci.org/seleniumbase/SeleniumBase) [ ](https://gitter.im/seleniumbase/SeleniumBase) [ ](https://github.com/seleniumbase/SeleniumBase/blob/master/LICENSE) [ ](https://github.com/seleniumbase/SeleniumBase/stargazers)
diff --git a/seleniumbase/console_scripts/run.py b/seleniumbase/console_scripts/run.py index fbc94c1170a..3e4d0cde3b8 100644 --- a/seleniumbase/console_scripts/run.py +++ b/seleniumbase/console_scripts/run.py @@ -59,9 +59,9 @@ def show_install_usage(): print(" (Drivers: chromedriver, geckodriver, edgedriver") print(" iedriver, operadriver)") print(" Options:") - print(" VERSION - Specify version (Chromedriver / EdgeDr ONLY).") - print(" (Default Chromedriver version = 2.44)") - print(' Use "latest" to get the latest Chromedriver.') + print(" VERSION - Specify version") + print(" (Default Chromedriver version = 2.44)") + print(' Use "latest" for the latest version.') print(" Example:") print(" seleniumbase install chromedriver") print(" seleniumbase install chromedriver 76.0.3809.126") diff --git a/seleniumbase/console_scripts/sb_install.py b/seleniumbase/console_scripts/sb_install.py index 30b7d45d3ac..cb255273eee 100755 --- a/seleniumbase/console_scripts/sb_install.py +++ b/seleniumbase/console_scripts/sb_install.py @@ -5,9 +5,9 @@ seleniumbase install {chromedriver|geckodriver|edgedriver| iedriver|operadriver} [OPTIONS] Options: - VERSION - Specify version (Chromedriver / Edgedriver ONLY) - (Default Chromedriver version = 2.44) - Use "latest" to get the latest Chromedriver. + VERSION - Specify version + (Default Chromedriver version = 2.44) + Use "latest" for the latest version. Example: seleniumbase install chromedriver seleniumbase install chromedriver 76.0.3809.126 @@ -34,7 +34,7 @@ urllib3.disable_warnings() DRIVER_DIR = os.path.dirname(os.path.realpath(drivers.__file__)) DEFAULT_CHROMEDRIVER_VERSION = "2.44" -DEFAULT_GECKODRIVER_VERSION = "v0.24.0" +DEFAULT_GECKODRIVER_VERSION = "v0.25.0" DEFAULT_EDGEDRIVER_VERSION = "77.0.235.20" DEFAULT_OPERADRIVER_VERSION = "v.2.40" @@ -127,6 +127,18 @@ def main(): raise Exception("Could not find Chromedriver to download!\n") elif name == "geckodriver" or name == "firefoxdriver": use_version = DEFAULT_GECKODRIVER_VERSION + found_geckodriver = False + if num_args == 4: + use_version = sys.argv[3] + if use_version.lower() == "latest": + last = ("https://api.github.com/repos/" + "mozilla/geckodriver/releases/latest") + url_request = requests.get(last) + if url_request.ok: + found_geckodriver = True + use_version = url_request.json()["tag_name"] + else: + use_version = DEFAULT_GECKODRIVER_VERSION if "darwin" in sys_plat: file_name = "geckodriver-%s-macos.tar.gz" % use_version elif "linux" in sys_plat: @@ -140,10 +152,17 @@ def main(): else: raise Exception("Cannot determine which version of Geckodriver " "(Firefox Driver) to download!") - download_url = ("https://github.com/mozilla/geckodriver/" "releases/download/" "%s/%s" % (use_version, file_name)) + url_request = None + if not found_geckodriver: + url_request = requests.get(download_url) + if found_geckodriver or url_request.ok: + print("\nGeckodriver version for download = %s" % use_version) + else: + raise Exception("\nCould not find the specified Geckodriver " + "version to download!\n") elif name == "edgedriver" or name == "msedgedriver": name = "edgedriver" use_version = DEFAULT_EDGEDRIVER_VERSION diff --git a/setup.py b/setup.py index 73c8012a6cd..2fba87406a0 100755 --- a/setup.py +++ b/setup.py @@ -45,7 +45,7 @@ setup( name='seleniumbase', - version='1.31.7', + version='1.31.8', description='Fast, Easy, and Reliable Browser Automation & Testing.', long_description=long_description, long_description_content_type='text/markdown',