Example usage for org.openqa.selenium WebDriver getCurrentUrl

List of usage examples for org.openqa.selenium WebDriver getCurrentUrl

Introduction

In this page you can find the example usage for org.openqa.selenium WebDriver getCurrentUrl.

Prototype

String getCurrentUrl();

Source Link

Document

Get a string representing the current URL that the browser is looking at.

Usage

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);
            }
        }
    }
}