From 643196fb406310f817a916673f9cd65ca9a7d636 Mon Sep 17 00:00:00 2001 From: Viktor Sidochenko Date: Mon, 28 Aug 2023 14:15:40 +0600 Subject: [PATCH] Now LATEST is the Stable chrome version --- .../bonigarcia/wdm/ChromeDriverManager.java | 27 +++++++++++++++++++ .../resources/webdrivermanager.properties | 1 + 2 files changed, 28 insertions(+) diff --git a/src/main/java/io/github/bonigarcia/wdm/ChromeDriverManager.java b/src/main/java/io/github/bonigarcia/wdm/ChromeDriverManager.java index 085cdfbf2..d829fc573 100644 --- a/src/main/java/io/github/bonigarcia/wdm/ChromeDriverManager.java +++ b/src/main/java/io/github/bonigarcia/wdm/ChromeDriverManager.java @@ -18,6 +18,7 @@ import com.google.gson.JsonArray; import com.google.gson.JsonElement; +import com.google.gson.JsonObject; import org.slf4j.Logger; import java.io.IOException; @@ -29,6 +30,7 @@ import java.util.stream.Collectors; import static io.github.bonigarcia.wdm.WdmConfig.getString; +import static io.github.bonigarcia.wdm.WdmConfig.getUrl; import static java.lang.invoke.MethodHandles.lookup; import static java.util.Arrays.asList; import static org.slf4j.LoggerFactory.getLogger; @@ -113,6 +115,31 @@ protected String getCurrentVersion(URL url, String driverName) { } } + @Override + protected List getLatest(List list, List match) { + log.trace("Checking the latest stable version of {} with URL list {}", match, + list); + URL chromeChannels = getUrl("wdm.chromedriverUrl.channels"); + Function> stableParser = jsonElement -> { + JsonObject channels = jsonElement.getAsJsonObject().getAsJsonObject("channels"); + String stableVersion = channels.getAsJsonObject("Stable").getAsJsonPrimitive("version").getAsString(); + + return list.stream().filter(url -> url.toString().contains(stableVersion)).collect(Collectors.toList()); + }; + + List out = new ArrayList<>(); + try { + out.addAll(getDriversFromJson(chromeChannels, stableParser)); + } catch (IOException e) { + log.error("Cannot determine latest version for {}", match); + return out; + } + versionToDownload = getCurrentVersion(out.get(0), "chromedriver"); + + log.info("Latest version of {} is {}", match, versionToDownload); + return out; + } + @Override public BrowserManager useTaobaoMirror() { return useTaobaoMirror("wdm.chromeDriverTaobaoUrl"); diff --git a/src/main/resources/webdrivermanager.properties b/src/main/resources/webdrivermanager.properties index 9d9748a98..f3bdd59b3 100644 --- a/src/main/resources/webdrivermanager.properties +++ b/src/main/resources/webdrivermanager.properties @@ -5,6 +5,7 @@ wdm.useBetaVersions=false wdm.timeout=30 wdm.chromeDriverUrl.legacy=https://chromedriver.storage.googleapis.com/ +wdm.chromedriverUrl.channels=https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions.json wdm.chromeDriverUrl=https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json wdm.chromeDriverTaobaoUrl=http://npm.taobao.org/mirrors/chromedriver/ wdm.chromeDriverExport=webdriver.chrome.driver