protected void deleteFile(File file) { log.trace("Deleting file {}", file); try { delete(file.toPath()); } catch (IOException e) { throw new WebDriverManagerException(e); } }
protected void deleteFolder(File folder) { assert folder.isDirectory(); log.trace("Deleting folder {}", folder); try { deleteDirectory(folder); } catch (IOException e) { throw new WebDriverManagerException(e); } }
public HttpResponse execute(HttpRequestBase method) throws IOException { HttpResponse response = closeableHttpClient.execute(method); if (response.getStatusLine().getStatusCode() >= SC_BAD_REQUEST) { String errorMessage = "Error HTTP " + response.getStatusLine().getStatusCode() + " executing " + method; log.error(errorMessage); throw new WebDriverManagerException(errorMessage); } return response; }
@SuppressWarnings("unchecked") private <T> T parse(Class<T> type, String strValue) { T output = null; if (type.equals(String.class)) { output = (T) strValue; } else if (type.equals(Integer.class)) { output = (T) Integer.valueOf(strValue); } else if (type.equals(Boolean.class)) { output = (T) Boolean.valueOf(strValue); } else if (type.equals(URL.class)) { try { output = (T) new URL(strValue); } catch (Exception e) { throw new WebDriverManagerException(e); } } else { throw new WebDriverManagerException( "Type " + type.getTypeName() + " cannot be parsed"); } return output; }
protected File postDownload(File archive) { File parentFolder = archive.getParentFile(); File[] ls = parentFolder.listFiles(); for (File f : ls) { if (getDriverName().contains(removeExtension(f.getName()))) { log.trace("Found binary in post-download: {}", f); return f; } } throw new WebDriverManagerException("Driver " + getDriverName() + " not found (using temporal folder " + parentFolder + ")"); }
private boolean checkInsiderVersion(String version) { if (version.equals(INSIDERS)) { String systemRoot = System.getenv("SystemRoot"); File microsoftWebDriverFile = new File(systemRoot, "System32" + File.separator + "MicrosoftWebDriver.exe"); if (microsoftWebDriverFile.exists()) { downloadedVersion = INSIDERS; exportDriver(microsoftWebDriverFile.toString()); return true; } else { retry = false; throw new WebDriverManagerException( "MicrosoftWebDriver.exe should be installed in an elevated command prompt executing: " + "dism /Online /Add-Capability /CapabilityName:Microsoft.WebDriver~~~~0.0.1.0"); } } return false; }
@Override public String toString() { switch (this) { case CHROME: return "Google Chrome"; case FIREFOX: return "Mozilla Firefox"; case OPERA: return "Opera"; case EDGE: return "Microsoft Edge"; case PHANTOMJS: return "PhantomJS"; case IEXPLORER: return "Internet Explorer"; case SELENIUM_SERVER_STANDALONE: return "Selenium Server Standalone"; default: throw new WebDriverManagerException( "Invalid driver manager type: " + this.name()); } }
protected List<URL> getDriversFromXml(URL driverUrl) throws IOException { log.info("Reading {} to seek {}", driverUrl, getDriverName()); List<URL> urls = new ArrayList<>(); HttpResponse response = httpClient .execute(httpClient.createHttpGet(driverUrl)); try { try (BufferedReader reader = new BufferedReader( new InputStreamReader(response.getEntity().getContent()))) { Document xml = loadXML(reader); NodeList nodes = (NodeList) newInstance().newXPath().evaluate( "//Contents/Key", xml.getDocumentElement(), NODESET); for (int i = 0; i < nodes.getLength(); ++i) { Element e = (Element) nodes.item(i); urls.add(new URL(driverUrl + e.getChildNodes().item(0).getNodeValue())); } } } catch (Exception e) { throw new WebDriverManagerException(e); } return urls; }
private final Optional<HttpHost> createProxyHttpHost(String proxyUrl) throws MalformedURLException { Optional<Proxy> proxy = createProxy(proxyUrl); if (proxy.isPresent() && proxy.get().address() != null) { if (!(proxy.get().address() instanceof InetSocketAddress)) { String errorMessage = "Detect an unsupported subclass of SocketAddress. " + "Please use the InetSocketAddress or subclass. Actual:" + proxy.get().address().getClass(); log.error(errorMessage); throw new WebDriverManagerException(errorMessage); } InetSocketAddress proxyAddress = (InetSocketAddress) proxy.get() .address(); return Optional.of(new HttpHost(proxyAddress.getHostName(), proxyAddress.getPort())); } return empty(); }
public WebDriverManager useMirror() { Optional<URL> mirrorUrl = getMirrorUrl(); if (!mirrorUrl.isPresent()) { throw new WebDriverManagerException("Mirror URL not available"); } config().setUseMirror(true); setDriverUrl(mirrorUrl.get()); return instanceMap.get(getDriverManagerType()); }
public List<String> getVersions() { httpClient = new HttpClient(config()); try { List<URL> drivers = getDrivers(); List<String> versions = new ArrayList<>(); for (URL url : drivers) { String version = getCurrentVersion(url, getDriverName()); if (version.isEmpty() || version.equalsIgnoreCase("icons")) { continue; } if (version.startsWith(".")) { version = version.substring(1); } if (!versions.contains(version)) { versions.add(version); } } log.trace("Version list before sorting {}", versions); sort(versions, new VersionComparator()); return versions; } catch (IOException e) { throw new WebDriverManagerException(e); } }
@Override public List<String> getVersions() { httpClient = new HttpClient(config()); try { getDrivers(); sort(listVersions, new VersionComparator()); return listVersions; } catch (IOException e) { throw new WebDriverManagerException(e); } }
protected void handleException(Exception e, Architecture arch, String version) { String errorMessage = String.format( "There was an error managing %s %s (%s)", getDriverName(), version, e.getMessage()); if (!config().isForceCache() && retry) { config().setForceCache(true); log.warn("{} ... trying again forcing to use cache", errorMessage, e); manage(arch, version); } else { log.error("{}", errorMessage, e); throw new WebDriverManagerException(e); } }
do { if (i >= listFiles.length) { throw new WebDriverManagerException( "Driver binary for Opera not found in zip file");
+ getDriverUrl(); log.error(errorMessage); throw new WebDriverManagerException(errorMessage);
protected void deleteFile(File file) { log.trace("Deleting file {}", file); try { delete(file.toPath()); } catch (IOException e) { throw new WebDriverManagerException(e); } }
protected File postDownload(File archive) { File parentFolder = archive.getParentFile(); File[] ls = parentFolder.listFiles(); for (File f : ls) { if (getDriverName().contains(removeExtension(f.getName()))) { log.trace("Found binary in post-download: {}", f); return f; } } throw new WebDriverManagerException("Driver " + getDriverName() + " not found (using temporal folder " + parentFolder + ")"); }
public WebDriverManager useMirror() { Optional<URL> mirrorUrl = getMirrorUrl(); if (!mirrorUrl.isPresent()) { throw new WebDriverManagerException("Mirror URL not available"); } config().setUseMirror(true); setDriverUrl(mirrorUrl.get()); return instanceMap.get(getDriverManagerType()); }
@Override public List<String> getVersions() { httpClient = new HttpClient(config()); try { getDrivers(); sort(listVersions, new VersionComparator()); return listVersions; } catch (IOException e) { throw new WebDriverManagerException(e); } }