use of org.openqa.selenium.firefox.FirefoxDriver in project nutch by apache.
the class HttpWebClient method getDriverForPage.
public static WebDriver getDriverForPage(String url, Configuration conf) {
WebDriver driver = null;
DesiredCapabilities capabilities = null;
long pageLoadWait = conf.getLong("page.load.delay", 3);
try {
String driverType = conf.get("selenium.driver", "firefox");
switch(driverType) {
case "firefox":
String allowedHost = conf.get("selenium.firefox.allowed.hosts", "localhost");
long firefoxBinaryTimeout = conf.getLong("selenium.firefox.binary.timeout", 45);
boolean enableFlashPlayer = conf.getBoolean("selenium.firefox.enable.flash", false);
int loadImage = conf.getInt("selenium.firefox.load.image", 1);
int loadStylesheet = conf.getInt("selenium.firefox.load.stylesheet", 1);
FirefoxProfile profile = new FirefoxProfile();
FirefoxBinary binary = new FirefoxBinary();
profile.setPreference(FirefoxProfile.ALLOWED_HOSTS_PREFERENCE, allowedHost);
profile.setPreference("dom.ipc.plugins.enabled.libflashplayer.so", enableFlashPlayer);
profile.setPreference("permissions.default.stylesheet", loadStylesheet);
profile.setPreference("permissions.default.image", loadImage);
binary.setTimeout(TimeUnit.SECONDS.toMillis(firefoxBinaryTimeout));
driver = new FirefoxDriver(binary, profile);
break;
case "chrome":
driver = new ChromeDriver();
break;
case "safari":
driver = new SafariDriver();
break;
case "opera":
driver = new OperaDriver();
break;
case "phantomjs":
driver = new PhantomJSDriver();
break;
case "remote":
String seleniumHubHost = conf.get("selenium.hub.host", "localhost");
int seleniumHubPort = Integer.parseInt(conf.get("selenium.hub.port", "4444"));
String seleniumHubPath = conf.get("selenium.hub.path", "/wd/hub");
String seleniumHubProtocol = conf.get("selenium.hub.protocol", "http");
String seleniumGridDriver = conf.get("selenium.grid.driver", "firefox");
String seleniumGridBinary = conf.get("selenium.grid.binary");
switch(seleniumGridDriver) {
case "firefox":
capabilities = DesiredCapabilities.firefox();
capabilities.setBrowserName("firefox");
capabilities.setJavascriptEnabled(true);
capabilities.setCapability("firefox_binary", seleniumGridBinary);
System.setProperty("webdriver.reap_profile", "false");
driver = new RemoteWebDriver(new URL(seleniumHubProtocol, seleniumHubHost, seleniumHubPort, seleniumHubPath), capabilities);
break;
case "phantomjs":
capabilities = DesiredCapabilities.phantomjs();
capabilities.setBrowserName("phantomjs");
capabilities.setJavascriptEnabled(true);
capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, seleniumGridBinary);
driver = new RemoteWebDriver(new URL(seleniumHubProtocol, seleniumHubHost, seleniumHubPort, seleniumHubPath), capabilities);
break;
default:
LOG.error("The Selenium Grid WebDriver choice {} is not available... defaulting to FirefoxDriver().", driverType);
driver = new RemoteWebDriver(new URL(seleniumHubProtocol, seleniumHubHost, seleniumHubPort, seleniumHubPath), DesiredCapabilities.firefox());
break;
}
break;
default:
LOG.error("The Selenium WebDriver choice {} is not available... defaulting to FirefoxDriver().", driverType);
driver = new FirefoxDriver();
break;
}
LOG.debug("Selenium {} WebDriver selected.", driverType);
driver.manage().timeouts().pageLoadTimeout(pageLoadWait, TimeUnit.SECONDS);
driver.get(url);
} catch (Exception e) {
if (e instanceof TimeoutException) {
LOG.debug("Selenium WebDriver: Timeout Exception: Capturing whatever loaded so far...");
return driver;
}
cleanUpDriver(driver);
throw new RuntimeException(e);
}
return driver;
}
use of org.openqa.selenium.firefox.FirefoxDriver in project SneakerBot by Penor.
the class Adidas method splash.
@SuppressWarnings("deprecation")
public void splash() {
try {
WebDriverWait wait = new WebDriverWait(driver, 60L);
print("Loading webpage: " + url);
driver.get(url);
wait.until(new Function<WebDriver, Boolean>() {
public Boolean apply(WebDriver d) {
// + String.valueOf(((JavascriptExecutor) d).executeScript("return document.readyState")));
return String.valueOf(((JavascriptExecutor) d).executeScript("return document.readyState")).equals("complete");
}
});
// TODO: Get to splash page.
boolean displayed = wait.until(x -> x.findElement(By.className("sk-fading-circle"))).isDisplayed();
if (displayed) {
print(proxy != null ? ("[" + proxy.getPassword() + ":" + proxy.getPort() + "] -> ") : "" + "waiting at splash page!");
while (driver.findElements(By.className("g-recaptcha")).size() == 0) Thread.sleep(5000L);
print(proxy != null ? ("[" + proxy.getPassword() + ":" + proxy.getPort() + "] -> ") : "" + "passed splash page!");
driver.manage().getCookies().stream().forEach(c -> {
if (c.getValue().contains("hmac")) {
hmac = c.getValue();
hmacExpiration = c.getExpiry();
}
});
if (driver.findElements(By.className("g-recaptcha")).size() > 0)
siteKey = driver.findElement(By.className("g-recaptcha")).getAttribute("data-sitekey");
if (driver.findElements(By.id("flashproductform")).size() > 0)
clientId = driver.findElement(By.id("flashproductform")).getAttribute("action").split("clientId=")[1];
Date timeLeft = new Date(hmacExpiration.getTime() - System.currentTimeMillis());
print("[Success] -> SiteKey: " + siteKey + " Client ID: " + clientId + " HMAC: " + hmac + " Time Left: " + timeLeft.getMinutes() + "m" + timeLeft.getSeconds() + "s");
} else
print("Error, Element displayed: " + displayed);
if (manual) {
FirefoxProfile profile = new FirefoxProfile();
if (proxy != null) {
profile.setPreference("network.proxy.type", 1);
profile.setPreference("network.proxy.http", proxy.getAddress());
profile.setPreference("network.proxy.http_port", proxy.getPort());
profile.setPreference("network.proxy.ssl", proxy.getAddress());
profile.setPreference("network.proxy.ssl_port", proxy.getPort());
}
// profile.setPreference("general.useragent.override", driver.set);
WebDriver checkout = new FirefoxDriver(profile);
for (Cookie cookie : driver.manage().getCookies()) checkout.manage().addCookie(cookie);
checkout.get(driver.getCurrentUrl());
} else
while (!carted && hmacExpiration.getTime() > System.currentTimeMillis()) atc();
} catch (Exception e) {
String name = e.getClass().getName();
print("[Exception] -> " + name);
carted = true;
if (name.equals("org.openqa.selenium.TimeoutException"))
carted = false;
} finally {
print(carted ? "Closing driver, and ending" : "Failed, Retrying...");
if (carted) {
driver.quit();
Thread.currentThread().interrupt();
}
}
}
Aggregations