diff --git a/SeleniumGridExtras/src/main/java/com/groupon/seleniumgridextras/browser/BrowserVersionDetector.java b/SeleniumGridExtras/src/main/java/com/groupon/seleniumgridextras/browser/BrowserVersionDetector.java index 0436a59d..d9e111d4 100644 --- a/SeleniumGridExtras/src/main/java/com/groupon/seleniumgridextras/browser/BrowserVersionDetector.java +++ b/SeleniumGridExtras/src/main/java/com/groupon/seleniumgridextras/browser/BrowserVersionDetector.java @@ -117,6 +117,8 @@ public static String guessBrowserVersion(String browserName) { return getIEVersion(); } else if (browserName.equalsIgnoreCase("internet explorer")) { return getIEVersion(); + } else if (browserName.equalsIgnoreCase("safari")) { + return getSafariVersion(); } else { return ""; } @@ -236,4 +238,22 @@ private static String getChromeVersion() { } return version; } + + /** + * + * @return version of Safari installed + */ + private static String getSafariVersion() { + String version =""; + try { + String cmd = "mdls -name kMDItemVersion /Applications/Safari.app"; + JsonObject object = ExecuteCommand.execRuntime(cmd, true); + logger.info("Detected Safari version: " + object.get("out").getAsJsonArray().get(0).getAsString().trim().replaceAll("[^\\d.]", "")); + version = object.get("out").getAsJsonArray().get(0).getAsString().trim().replaceAll("[^\\d.]", ""); + } catch (Exception e) { + // If ExecuteCommand.execRuntime fails, still return ""; + logger.warn(e.getMessage()); + } + return version; + } }