List of usage examples for org.openqa.selenium WebDriver getCurrentUrl
String getCurrentUrl();
From source file:org.apache.nutch.protocol.interactiveselenium.handlers.PaginationHandler.java
License:Apache License
private String handle(WebDriver driver, String htmlpage) { for (int i = 0; i < 100; i++) { JavascriptExecutor jse = (JavascriptExecutor) driver; jse.executeScript("window.scrollBy(0,250)"); }/* w w w. j av a 2 s.c o m*/ try { Thread.sleep(1000); } catch (Exception e) { e.printStackTrace(); } List<WebElement> anchorTags = driver.findElements(By.xpath("//a")); for (WebElement anchorTag : anchorTags) { htmlpage += "<a href='" + anchorTag.getAttribute("href") + "'>test</a>"; } WebElement ele = driver.findElement(By.className("searchPaginationNext")); while (ele != null) { try { ele.click(); System.out.println(driver.getCurrentUrl()); Thread.sleep(1000); List<WebElement> anchorTags2 = driver.findElements(By.xpath("//*[@id='main']//a")); for (WebElement anchorTag2 : anchorTags2) { htmlpage += "<a href='" + anchorTag2.getAttribute("href") + "'>test</a>"; } ele = driver.findElement(By.className("searchPaginationNext")); for (int i = 0; i < 100; i++) { JavascriptExecutor jse = (JavascriptExecutor) driver; jse.executeScript("window.scrollBy(0,250)"); } try { Thread.sleep(1000); } catch (Exception e) { e.printStackTrace(); } } catch (Exception e) { ele = null; } } htmlpage += "</body></html>"; JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("document.body.innerHTML=arguments[0]", htmlpage); return htmlpage; }
From source file:org.apache.nutch.protocol.interactiveselenium.handlers.PaginationHandler.java
License:Apache License
public String processDriver(WebDriver webDriver) { String htmlpage = ""; String currentUrl = webDriver.getCurrentUrl(); switch (currentUrl) { case "http://www.iguntrade.com/index.php?page=search": htmlpage += handle(webDriver, htmlpage); break;/*from w w w .j a v a 2 s . c o m*/ default: throw new IllegalArgumentException("no method implemented for this url " + currentUrl); } return htmlpage; }
From source file:org.apache.nutch.protocol.interactiveselenium.handlers.SearchHandler.java
License:Apache License
public String processDriver(WebDriver webDriver) { String htmlpage = ""; String currentUrl = webDriver.getCurrentUrl(); String searchWindowPath = searchWindowPathFromUrl(currentUrl); String searchInputPath = searchInputPathFromUrl(currentUrl); String searchButtonPath = searchButtonPathFromUrl(currentUrl); String searchRadioButton = searchRadioButtonPath(currentUrl); String searchKey = searchKeyFromUrl(currentUrl); htmlpage += genericSearchHandler(webDriver, htmlpage, searchWindowPath, searchInputPath, searchButtonPath, searchRadioButton, searchKey); return htmlpage; }
From source file:org.apache.nutch.protocol.interactiveselenium.NewarkHandler.java
License:Apache License
@Override public String processDriver(WebDriver driver) { StringBuffer buffer = new StringBuffer(); // Extract content String content = driver.findElement(By.tagName("body")).getText(); buffer.append(content).append("\n"); WebElement pages = driver.findElement(By.xpath("//span[@class='pages']")); if (pages == null) { return buffer.toString(); }// www .j a v a 2s . com int lastPageNum = 1; try { lastPageNum = Integer.parseInt( pages.findElement(By.xpath("./span[@class='paginNext pageIt']/a")).getAttribute("data-rel")); } catch (NumberFormatException e) { // do nothing } for (int i = 2; i <= lastPageNum; i++) { buffer.append("<a href=\"").append(driver.getCurrentUrl()).append("/prl/results/").append(i) .append("\" />\n"); } return buffer.toString(); }
From source file:org.apache.nutch.protocol.selenium.HttpWebClient.java
License:Apache License
private static void takeScreenshot(WebDriver driver, Configuration conf) { try {//w ww. j a v a 2 s. c o m String url = driver.getCurrentUrl(); File srcFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); LOG.debug("In-memory screenshot taken of: {}", url); FileSystem fs = FileSystem.get(conf); if (conf.get("screenshot.location") != null) { Path screenshotPath = new Path(conf.get("screenshot.location") + "/" + srcFile.getName()); OutputStream os = null; if (!fs.exists(screenshotPath)) { LOG.debug("No existing screenshot already exists... creating new file at {} {}.", screenshotPath, srcFile.getName()); os = fs.create(screenshotPath); } InputStream is = new BufferedInputStream(new FileInputStream(srcFile)); IOUtils.copyBytes(is, os, conf); LOG.debug("Screenshot for {} successfully saved to: {} {}", url, screenshotPath, srcFile.getName()); } else { LOG.warn("Screenshot for {} not saved to HDFS (subsequently disgarded) as value for " + "'screenshot.location' is absent from nutch-site.xml.", url); } } catch (Exception e) { LOG.error("Error taking screenshot: ", e); cleanUpDriver(driver); throw new RuntimeException(e); } }
From source file:org.atteo.moonshine.webdriver.WebDriverHelper.java
License:Apache License
public void waitUntilPath(final String path) { waitUntil(new Function<WebDriver, Boolean>() { @Override/*from w ww. j a v a2 s .com*/ public Boolean apply(WebDriver driver) { return driver.getCurrentUrl().matches(".*" + path); } }, "Path did not change to '" + path + "'"); }
From source file:org.cerberus.service.engine.impl.WebDriverService.java
License:Open Source License
@Override public MessageEvent doSeleniumActionKeyPress(Session session, Identifier identifier, String property) { MessageEvent message;// w ww.ja v a 2 s . c o m try { if (!StringUtil.isNullOrEmpty(identifier.getLocator())) { AnswerItem answer = this.getSeleniumElement(session, identifier, true, true); if (answer.isCodeEquals(MessageEventEnum.ACTION_SUCCESS_WAIT_ELEMENT.getCode())) { WebElement webElement = (WebElement) answer.getItem(); if (webElement != null) { webElement.sendKeys(Keys.valueOf(property)); message = new MessageEvent(MessageEventEnum.ACTION_SUCCESS_KEYPRESS); message.setDescription(message.getDescription().replaceAll("%ELEMENT%", identifier.getIdentifier() + "=" + identifier.getLocator())); message.setDescription(message.getDescription().replaceAll("%DATA%", property)); return message; } } return answer.getResultMessage(); } else { try { System.setProperty("java.awt.headless", "false"); WebDriver driver = session.getDriver(); driver.get(driver.getCurrentUrl()); //gets the robot Robot r = new Robot(); //converts the Key description sent through Cerberus into the AWT key code int keyCode = KeyCodeEnum.getAWTKeyCode(property); if (keyCode != KeyCodeEnum.NOT_VALID.getKeyCode()) { //if the code is valid then presses the key and releases the key r.keyPress(keyCode); r.keyRelease(keyCode); message = new MessageEvent(MessageEventEnum.ACTION_SUCCESS_KEYPRESS_NO_ELEMENT); } else { //the key enterer is not valid message = new MessageEvent(MessageEventEnum.ACTION_FAILED_KEYPRESS_NOT_AVAILABLE); MyLogger.log(WebDriverService.class.getName(), Level.DEBUG, "Key " + property + "is not available in the current environment"); } message.setDescription(message.getDescription().replaceAll("%KEY%", property)); } catch (AWTException ex) { Logger.getLogger(WebDriverService.class.getName()).log(Level.ERROR, null, ex); message = new MessageEvent(MessageEventEnum.ACTION_FAILED_KEYPRESS_ENV_ERROR); MyLogger.log(WebDriverService.class.getName(), Level.DEBUG, ex.toString()); } } } catch (NoSuchElementException exception) { message = new MessageEvent(MessageEventEnum.ACTION_FAILED_KEYPRESS_NO_SUCH_ELEMENT); message.setDescription(message.getDescription().replaceAll("%ELEMENT%", identifier.getIdentifier() + "=" + identifier.getLocator())); MyLogger.log(WebDriverService.class.getName(), Level.DEBUG, exception.toString()); } catch (WebDriverException exception) { message = new MessageEvent(MessageEventEnum.ACTION_FAILED_SELENIUM_CONNECTIVITY); MyLogger.log(WebDriverService.class.getName(), Level.FATAL, exception.toString()); } return message; }
From source file:org.cerberus.service.webdriver.impl.WebDriverService.java
License:Open Source License
@Override public MessageEvent doSeleniumActionKeyPress(Session session, Identifier identifier, String property) { MessageEvent message;//from w w w . j av a 2 s . co m try { if (!StringUtil.isNullOrEmpty(identifier.getLocator())) { AnswerItem answer = this.getSeleniumElement(session, identifier, true, true); if (answer.isCodeEquals(MessageEventEnum.ACTION_SUCCESS_WAIT_ELEMENT.getCode())) { WebElement webElement = (WebElement) answer.getItem(); if (webElement != null) { webElement.sendKeys(Keys.valueOf(property)); message = new MessageEvent(MessageEventEnum.ACTION_SUCCESS_KEYPRESS); message.setDescription(message.getDescription().replace("%ELEMENT%", identifier.getIdentifier() + "=" + identifier.getLocator())); message.setDescription(message.getDescription().replace("%DATA%", property)); return message; } } return answer.getResultMessage(); } else { try { System.setProperty("java.awt.headless", "false"); WebDriver driver = session.getDriver(); driver.get(driver.getCurrentUrl()); //gets the robot Robot r = new Robot(); //converts the Key description sent through Cerberus into the AWT key code int keyCode = KeyCodeEnum.getAWTKeyCode(property); if (keyCode != KeyCodeEnum.NOT_VALID.getKeyCode()) { //if the code is valid then presses the key and releases the key r.keyPress(keyCode); r.keyRelease(keyCode); message = new MessageEvent(MessageEventEnum.ACTION_SUCCESS_KEYPRESS_NO_ELEMENT); } else { //the key enterer is not valid message = new MessageEvent(MessageEventEnum.ACTION_FAILED_KEYPRESS_NOT_AVAILABLE); MyLogger.log(WebDriverService.class.getName(), Level.DEBUG, "Key " + property + "is not available in the current environment"); } message.setDescription(message.getDescription().replace("%KEY%", property)); } catch (AWTException ex) { Logger.getLogger(WebDriverService.class.getName()).log(Level.ERROR, null, ex); message = new MessageEvent(MessageEventEnum.ACTION_FAILED_KEYPRESS_ENV_ERROR); MyLogger.log(WebDriverService.class.getName(), Level.DEBUG, ex.toString()); } } } catch (NoSuchElementException exception) { message = new MessageEvent(MessageEventEnum.ACTION_FAILED_KEYPRESS_NO_SUCH_ELEMENT); message.setDescription(message.getDescription().replace("%ELEMENT%", identifier.getIdentifier() + "=" + identifier.getLocator())); MyLogger.log(WebDriverService.class.getName(), Level.DEBUG, exception.toString()); } catch (TimeoutException exception) { message = new MessageEvent(MessageEventEnum.ACTION_FAILED_TIMEOUT); message.setDescription(message.getDescription().replace("%TIMEOUT%", String.valueOf(session.getCerberus_selenium_wait_element()))); MyLogger.log(WebDriverService.class.getName(), Level.WARN, exception.toString()); } catch (WebDriverException exception) { MyLogger.log(WebDriverService.class.getName(), Level.FATAL, exception.toString()); return parseWebDriverException(exception); } return message; }
From source file:org.codelibs.fess.crawler.client.http.WebDriverClient.java
License:Apache License
@Override public ResponseData execute(final RequestData request) { WebDriver webDriver = null; try {/*from www . j av a2 s.c o m*/ webDriver = webDriverPool.borrowObject(); Map<String, String> paramMap = null; final String url = request.getUrl(); final String metaData = request.getMetaData(); if (StringUtil.isNotBlank(metaData)) { paramMap = parseParamMap(metaData); } if (!url.equals(webDriver.getCurrentUrl())) { webDriver.get(url); } if (logger.isDebugEnabled()) { logger.debug("Base URL: " + url + "\nContent: " + webDriver.getPageSource()); } if (paramMap != null) { final String processorName = paramMap.get(UrlAction.URL_ACTION); final UrlAction urlAction = urlActionMap.get(processorName); if (urlAction == null) { throw new CrawlerSystemException("Unknown processor: " + processorName); } urlAction.navigate(webDriver, paramMap); } final String source = webDriver.getPageSource(); final ResponseData responseData = new ResponseData(); responseData.setUrl(webDriver.getCurrentUrl()); responseData.setMethod(request.getMethod().name()); responseData.setContentLength(source.length()); final String charSet = getCharSet(webDriver); responseData.setCharSet(charSet); responseData.setHttpStatusCode(getStatusCode(webDriver)); responseData.setLastModified(getLastModified(webDriver)); responseData.setMimeType(getContentType(webDriver)); responseData.setResponseBody(source.getBytes(charSet)); for (final UrlAction urlAction : urlActionMap.values()) { urlAction.collect(url, webDriver, responseData); } return responseData; } catch (final Exception e) { throw new CrawlerSystemException("Failed to access " + request.getUrl(), e); } finally { if (webDriver != null) { try { webDriverPool.returnObject(webDriver); } catch (final Exception e) { logger.warn("Failed to return a returned object.", e); } } } }
From source file:org.codelibs.robot.client.http.WebDriverClient.java
License:Apache License
@Override public ResponseData execute(final RequestData request) { WebDriver webDriver = null; try {/*from www.jav a 2 s . c om*/ webDriver = webDriverPool.borrowObject(); Map<String, String> paramMap = null; final String url = request.getUrl(); final String metaData = request.getMetaData(); if (StringUtil.isNotBlank(metaData)) { paramMap = parseParamMap(metaData); } if (!url.equals(webDriver.getCurrentUrl())) { webDriver.get(url); } if (logger.isDebugEnabled()) { logger.debug("Base URL: " + url + "\nContent: " + webDriver.getPageSource()); } if (paramMap != null) { final String processorName = paramMap.get(UrlAction.URL_ACTION); final UrlAction urlAction = urlActionMap.get(processorName); if (urlAction == null) { throw new RobotSystemException("Unknown processor: " + processorName); } urlAction.navigate(webDriver, paramMap); } final String source = webDriver.getPageSource(); final ResponseData responseData = new ResponseData(); responseData.setUrl(webDriver.getCurrentUrl()); responseData.setMethod(request.getMethod().name()); responseData.setContentLength(source.length()); final String charSet = getCharSet(webDriver); responseData.setCharSet(charSet); responseData.setHttpStatusCode(getStatusCode(webDriver)); responseData.setLastModified(getLastModified(webDriver)); responseData.setMimeType(getContentType(webDriver)); responseData.setResponseBody(new ByteArrayInputStream(source.getBytes(charSet))); for (final UrlAction urlAction : urlActionMap.values()) { urlAction.collect(url, webDriver, responseData); } return responseData; } catch (final Exception e) { throw new RobotSystemException("Failed to access " + request.getUrl(), e); } finally { if (webDriver != null) { try { webDriverPool.returnObject(webDriver); } catch (final Exception e) { logger.warn("Failed to return a returned object.", e); } } } }