Example usage for org.openqa.selenium WebDriver getWindowHandles

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

Introduction

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

Prototype

Set<String> getWindowHandles();

Source Link

Document

Return a set of window handles which can be used to iterate over all open windows of this WebDriver instance by passing them to #switchTo() .

Usage

From source file:org.wso2.carbon.appmanager.integration.ui.TestCases.ThrottlingTestCase.java

License:Open Source License

private void cleanWebDriver(WebDriver driver) {
    String parentWindow = driver.getWindowHandle();
    Set<String> handles = driver.getWindowHandles();
    for (String windowHandle : handles) {
        if (!windowHandle.equals(parentWindow)) {
            driver.switchTo().window(windowHandle);
            driver.close();/*from   www.j a va 2s. com*/
        }
    }
    driver.switchTo().window(parentWindow);
    driver.close();
}

From source file:org.wso2.carbon.appmanager.integration.ui.Util.APPMStoreUIClient.java

License:Open Source License

public WebDriver loginDriver(WebDriver driver, String backEndUrl, String username, String password) {

    driver.get(backEndUrl + uiElementMapper.getElement("store_url"));

    WebDriverWait wait = new WebDriverWait(driver, 30);

    wait.until(ExpectedConditions.visibilityOfElementLocated(
            By.linkText(uiElementMapper.getElement("store_sign_in_link_text_locator"))));
    driver.findElement(By.linkText(uiElementMapper.getElement("store_sign_in_link_text_locator"))).click();

    wait.until(ExpectedConditions//w ww  . j  a va  2 s.  co  m
            .visibilityOfElementLocated(By.id(uiElementMapper.getElement("store_username_id_locator"))));
    WebElement usernameEle = driver.findElement(By.id(uiElementMapper.getElement("store_username_id_locator")));

    usernameEle.sendKeys(username);
    // find element password
    wait.until(ExpectedConditions
            .visibilityOfElementLocated(By.id(uiElementMapper.getElement("store_password_id_locator"))));
    WebElement passwordEle = driver.findElement(By.id(uiElementMapper.getElement("store_password_id_locator")));
    // fill element
    passwordEle.sendKeys(password);
    // find submit button and click on it.
    driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
    driver.findElement(By.className(uiElementMapper.getElement("store_button_class_name_locator"))).click();

    for (String winHandle : driver.getWindowHandles()) {
        driver.switchTo().window(winHandle);
    }

    return driver;

}

From source file:org.wso2.carbon.appmanager.integration.ui.Util.APPMStoreUIClient.java

License:Open Source License

/**
 * access the store without login/*from w  ww .ja  v  a  2 s  .  co m*/
 *
 * @param driver     selenium WebDriver.
 * @param backEndUrl store host
 */
public void accessStore(WebDriver driver, String backEndUrl) {
    driver.get(backEndUrl + uiElementMapper.getElement("store_url"));
    for (String winHandle : driver.getWindowHandles()) {
        driver.switchTo().window(winHandle);
    }
}

From source file:org.wso2.carbon.appmanager.integration.ui.Util.APPMStoreUIClient.java

License:Open Source License

public void selectAppGadget(WebDriver driver, String appId) {
    driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);

    WebDriverWait wait = new WebDriverWait(driver, 30);
    wait.until(ExpectedConditions.visibilityOfElementLocated(By
            .xpath("//div[@data-id='" + appId + "']/div[@class='asset-details']/div[@class='asset-name']/a")));
    driver.findElement(//from  ww  w.j a  va2 s  . c om
            By.xpath("//div[@data-id='" + appId + "']/div[@class='asset-details']/div[@class='asset-name']/a"))
            .click();
    driver.close();
    for (String winHandle : driver.getWindowHandles()) {
        driver.switchTo().window(winHandle);
    }
}

From source file:org.xframium.gesture.device.action.spi.perfecto.OpenApplicationAction.java

License:Open Source License

@Override
public boolean _executeAction(WebDriver webDriver, List<Object> parameterList) {
    String executionId = getExecutionId(webDriver);
    String deviceName = getDeviceName(webDriver);

    String applicationName = (String) parameterList.get(0);

    ApplicationDescriptor appDesc = ApplicationRegistry.instance().getApplication(applicationName);

    if (appDesc == null)
        throw new ScriptConfigurationException("The Application " + applicationName + " does not exist");

    if (appDesc.isWeb()) {
        String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL, "t");
        if (webDriver.getWindowHandles() != null && webDriver.getWindowHandles().size() > 0)
            webDriver.findElement(By.tagName("body")).sendKeys(selectLinkOpeninNewTab);

        webDriver.get(appDesc.getUrl());

    } else {//w ww  .  j  a va2  s . c o  m
        Handset localDevice = PerfectoMobile.instance().devices().getDevice(deviceName);

        if (localDevice.getOs().toLowerCase().equals("ios"))
            PerfectoMobile.instance().application().open(executionId, deviceName, appDesc.getName(),
                    appDesc.getAppleIdentifier());
        else if (localDevice.getOs().toLowerCase().equals("android"))
            PerfectoMobile.instance().application().open(executionId, deviceName, appDesc.getName(),
                    appDesc.getAndroidIdentifier());
        else
            throw new IllegalArgumentException("Could not install application to " + localDevice.getOs());

        if (webDriver instanceof ContextAware)
            ((ContextAware) webDriver).context("NATIVE_APP");
    }
    return true;
}

From source file:org.xframium.page.keyWord.step.spi.KWSBrowser.java

License:Open Source License

@Override
public boolean _executeStep(Page pageObject, WebDriver webDriver, Map<String, Object> contextMap,
        Map<String, PageData> dataMap, Map<String, Page> pageMap, SuiteContainer sC,
        ExecutionContextTest executionContext) throws Exception {

    if (getName().toUpperCase().startsWith(SwitchType.SWITCH_TO_ELEMENT.name)) {
        Element currentElement = getElement(pageObject, contextMap, webDriver, dataMap,
                getName().split("\\.")[1], executionContext);
        if (currentElement == null) {
            log.warn("Attempting to switch to frame identified by " + getName() + " that does not exist");
            return false;
        }/*from  w ww . ja va2 s.  c  o  m*/

        WebElement nativeElement = (WebElement) currentElement.getNative();
        if (nativeElement instanceof MorelandWebElement)
            nativeElement = ((MorelandWebElement) nativeElement).getWebElement();
        webDriver.switchTo().frame(nativeElement);
    } else {
        switch (SwitchType.valueOf(getName().toUpperCase())) {
        case SWITCH_BY_TITLE:
            return verifySwitchWindow(webDriver, getName(), getParameterValue(getParameterList().get(0),
                    contextMap, dataMap, executionContext.getxFID()) + "");
        case SWITCH_BY_URL:
            return verifySwitchWindow(webDriver, getName(), getParameterValue(getParameterList().get(0),
                    contextMap, dataMap, executionContext.getxFID()) + "");

        case SWITCH_NAMED_FRAME:
            webDriver.switchTo().frame(getParameterValue(getParameterList().get(0), contextMap, dataMap,
                    executionContext.getxFID()) + "");
            break;
        case SWITCH_INDEX:
            webDriver.switchTo().frame(Integer.parseInt(getParameterValue(getParameterList().get(0), contextMap,
                    dataMap, executionContext.getxFID()) + ""));
            break;
        case PARENT_FRAME:
            webDriver.switchTo().parentFrame();
            break;
        case DEFAULT_FRAME:
            webDriver.switchTo().defaultContent();
            break;
        case CLOSE_WINDOW:
            webDriver.close();
            break;
        case NAVIGATE:
            if (isTimed())
                ((DeviceWebDriver) webDriver).getCloud().getCloudActionProvider()
                        .startTimer((DeviceWebDriver) webDriver, null, executionContext);

            webDriver.get(getParameterValue(getParameterList().get(0), contextMap, dataMap,
                    executionContext.getxFID()) + "");
            break;

        case MAXIMIZE:
            webDriver.manage().window().maximize();
            break;
        case GET_TITLE:
            String pageTitle = webDriver.getTitle();
            if (getParameterList().size() > 1) {
                String compareTo = getParameterValue(getParameterList().get(0), contextMap, dataMap,
                        executionContext.getxFID()) + "";
                if (!compareTo.equals(pageTitle)) {
                    throw new ScriptException(
                            "Expected Title of [" + compareTo + "] but received [" + pageTitle + "]");
                }
            }

            if (!validateData(pageTitle))
                throw new ScriptException("GET_TITLE Expected a format of [" + getValidationType() + "("
                        + getValidation() + ") for [" + pageTitle + "]");

            if (getContext() != null && !getContext().trim().isEmpty())
                contextMap.put(getContext(), pageTitle);

            break;

        case GET_URL:
            String currentUrl = webDriver.getCurrentUrl();
            if (getParameterList().size() > 1) {
                String compareTo = getParameterValue(getParameterList().get(0), contextMap, dataMap,
                        executionContext.getxFID()) + "";
                if (!compareTo.equals(currentUrl)) {
                    throw new ScriptException(
                            "Expected Title of [" + compareTo + "] but received [" + currentUrl + "]");
                }
            }

            if (!validateData(currentUrl))
                throw new ScriptException("GET_URL Expected a format of [" + getValidationType() + "("
                        + getValidation() + ") for [" + currentUrl + "]");

            if (getContext() != null && !getContext().trim().isEmpty())
                contextMap.put(getContext(), currentUrl);

            break;

        case BACK:
            if (isTimed())
                ((DeviceWebDriver) webDriver).getCloud().getCloudActionProvider()
                        .startTimer((DeviceWebDriver) webDriver, null, executionContext);
            webDriver.navigate().back();
            break;
        case FORWARD:
            if (isTimed())
                ((DeviceWebDriver) webDriver).getCloud().getCloudActionProvider()
                        .startTimer((DeviceWebDriver) webDriver, null, executionContext);
            webDriver.navigate().forward();
            break;
        case REFRESH:
            webDriver.navigate().refresh();
            break;
        case SWITCH_WIN_INDEX:
            int i = 0;
            int index = 0;
            if (getParameterList().size() < 2)
                index = 0;
            else
                index = Integer.valueOf(getParameterValue(getParameterList().get(1), contextMap, dataMap,
                        executionContext.getxFID()) + "");

            for (String handle : webDriver.getWindowHandles()) {
                if (i == index) {
                    webDriver.switchTo().window(handle);
                    break;
                }
                i += 1;
            }
            break;
        case ADD_COOKIE:
            Cookie addCookie = new Cookie(
                    getParameterValue(getParameterList().get(0), contextMap, dataMap,
                            executionContext.getxFID()) + "",
                    getParameterValue(getParameterList().get(1), contextMap, dataMap,
                            executionContext.getxFID()) + "");
            if (webDriver instanceof RemoteWebDriver)
                ((RemoteWebDriver) webDriver).manage().addCookie(addCookie);
            else if (webDriver instanceof NativeDriverProvider
                    && ((NativeDriverProvider) webDriver).getNativeDriver() instanceof RemoteWebDriver) {
                ((RemoteWebDriver) ((NativeDriverProvider) webDriver).getNativeDriver()).manage()
                        .addCookie(addCookie);
            }

            break;

        case DELETE_COOKIE:

            if (getParameterList().size() < 1) {
                if (webDriver instanceof RemoteWebDriver)
                    ((RemoteWebDriver) webDriver).manage().deleteAllCookies();
                else if (webDriver instanceof NativeDriverProvider
                        && ((NativeDriverProvider) webDriver).getNativeDriver() instanceof RemoteWebDriver) {
                    ((RemoteWebDriver) ((NativeDriverProvider) webDriver).getNativeDriver()).manage()
                            .deleteAllCookies();
                }
            } else {
                if (webDriver instanceof RemoteWebDriver)
                    ((RemoteWebDriver) webDriver).manage()
                            .deleteCookieNamed(getParameterValue(getParameterList().get(0), contextMap, dataMap,
                                    executionContext.getxFID()) + "");
                else if (webDriver instanceof NativeDriverProvider
                        && ((NativeDriverProvider) webDriver).getNativeDriver() instanceof RemoteWebDriver) {
                    ((RemoteWebDriver) ((NativeDriverProvider) webDriver).getNativeDriver()).manage()
                            .deleteCookieNamed(getParameterValue(getParameterList().get(0), contextMap, dataMap,
                                    executionContext.getxFID()) + "");
                }
            }
            break;

        case GET_COOKIE:

            if (getParameterList().size() < 1) {
                Set<Cookie> cookieSet = null;
                if (webDriver instanceof RemoteWebDriver)
                    cookieSet = ((RemoteWebDriver) webDriver).manage().getCookies();
                else if (webDriver instanceof NativeDriverProvider
                        && ((NativeDriverProvider) webDriver).getNativeDriver() instanceof RemoteWebDriver) {
                    cookieSet = ((RemoteWebDriver) ((NativeDriverProvider) webDriver).getNativeDriver())
                            .manage().getCookies();
                }

                StringBuilder buffer = new StringBuilder();
                for (Cookie cookie : cookieSet) {
                    buffer.append(cookie.getName() + ":" + cookie.getValue()).append(";");
                    if (getContext() != null) {
                        contextMap.put(getContext() + "_" + cookie.getName(), cookie.getValue());
                    }
                }
                String cookieValue = buffer.toString();
                if (!validateData(cookieValue)) {
                    throw new IllegalStateException("Get cookie Expected a format of [" + getValidationType()
                            + "(" + getValidation() + ") for [" + cookieValue + "]");
                }

                if (getContext() != null) {
                    contextMap.put(getContext(), cookieValue);
                }

            } else {
                Cookie getCookie = null;
                if (webDriver instanceof RemoteWebDriver)
                    getCookie = ((RemoteWebDriver) webDriver).manage()
                            .getCookieNamed(getParameterValue(getParameterList().get(0), contextMap, dataMap,
                                    executionContext.getxFID()) + "");
                else if (webDriver instanceof NativeDriverProvider
                        && ((NativeDriverProvider) webDriver).getNativeDriver() instanceof RemoteWebDriver)
                    getCookie = ((RemoteWebDriver) ((NativeDriverProvider) webDriver).getNativeDriver())
                            .manage().getCookieNamed(getParameterValue(getParameterList().get(0), contextMap,
                                    dataMap, executionContext.getxFID()) + "");

                if (!validateData(getCookie.getValue())) {
                    throw new IllegalStateException("Get cookie Expected a format of [" + getValidationType()
                            + "(" + getValidation() + ") for [" + getCookie.getValue() + "]");
                }

                if (getContext() != null) {
                    contextMap.put(getContext(), getCookie.getValue());
                }
            }

            break;

        case PAGE_DOWN:
            int pageDown = 1;
            if (getParameter("Page Count") != null)
                pageDown = Integer.parseInt(getParameterValue(getParameter("Page Count"), contextMap, dataMap,
                        executionContext.getxFID()));

            if (webDriver instanceof JavascriptExecutor)
                ((JavascriptExecutor) webDriver)
                        .executeScript("window.scrollBy( 0, (window.innerHeight * " + pageDown + "));");
            break;

        case PAGE_UP:
            int pageUp = 1;
            if (getParameter("Page Count") != null)
                pageUp = Integer.parseInt(getParameterValue(getParameter("Page Count"), contextMap, dataMap,
                        executionContext.getxFID()));

            if (webDriver instanceof JavascriptExecutor)
                ((JavascriptExecutor) webDriver)
                        .executeScript("window.scrollBy( 0, -(window.innerHeight * " + pageUp + "));");
            break;

        case SCROLL_DOWN:
            int scrollDown = 250;
            if (getParameter("Scroll Size") != null)
                scrollDown = Integer.parseInt(getParameterValue(getParameter("Scroll Size"), contextMap,
                        dataMap, executionContext.getxFID()));

            if (webDriver instanceof JavascriptExecutor)
                ((JavascriptExecutor) webDriver).executeScript("window.scrollBy( 0, " + scrollDown + ");");
            break;

        case SCROLL_UP:
            int scrollUp = 250;
            if (getParameter("Scroll Size") != null)
                scrollUp = Integer.parseInt(getParameterValue(getParameter("Scroll Size"), contextMap, dataMap,
                        executionContext.getxFID()));

            if (webDriver instanceof JavascriptExecutor)
                ((JavascriptExecutor) webDriver).executeScript("window.scrollBy( 0, -" + scrollUp + ");");
            break;

        default:

            throw new ScriptConfigurationException("Unknown Window Operation Type " + getName());
        }
    }

    return true;
}

From source file:org.xframium.page.keyWord.step.spi.KWSBrowser.java

License:Open Source License

/**
 * Verify switch window./*  w w  w  . ja  va  2 s.c  om*/
 *
 * @param webDriver
 *            the web driver
 * @param byTitleOrUrl
 *            the by title or url
 * @param winExpValue
 *            the win exp value
 * @return true, if successful
 */
private boolean verifySwitchWindow(WebDriver webDriver, String byTitleOrUrl, String winExpValue) {

    boolean bSwitchWindow = false;
    String winActValue = "";
    Set<String> availableWindows = webDriver.getWindowHandles();

    if (!availableWindows.isEmpty()) {
        for (String windowId : availableWindows) {
            if (byTitleOrUrl.equalsIgnoreCase("SWITCH_BY_TITLE")) {
                winActValue = webDriver.switchTo().window(windowId).getTitle().trim().toLowerCase();
            } else {
                winActValue = webDriver.switchTo().window(windowId).getCurrentUrl().trim().toLowerCase();
            }

            winExpValue = winExpValue.trim().toLowerCase();

            if (winActValue.contains(winExpValue)) {
                bSwitchWindow = true;
                break;
            }
        }
    }

    return bSwitchWindow;
}

From source file:org.xframium.page.keyWord.step.spi.KWSWindow.java

License:Open Source License

/**
 * Verify switch window.//from  w  w  w .j  ava 2  s.  co  m
 *
 * @param webDriver the web driver
 * @param byTitleOrUrl the by title or url
 * @param winExpValue the win exp value
 * @return true, if successful
 */
private boolean verifySwitchWindow(WebDriver webDriver, String byTitleOrUrl, String winExpValue) {

    boolean bSwitchWindow = false;
    String winActValue = "";
    Set<String> availableWindows = webDriver.getWindowHandles();

    if (!availableWindows.isEmpty()) {
        for (String windowId : availableWindows) {
            if (byTitleOrUrl.equalsIgnoreCase("BY_WINTITLE")) {
                winActValue = webDriver.switchTo().window(windowId).getTitle().trim().toLowerCase();
            } else {
                winActValue = webDriver.switchTo().window(windowId).getCurrentUrl().trim().toLowerCase();
            }

            winExpValue = winExpValue.trim().toLowerCase();

            if (winActValue.contains(winExpValue)) {
                bSwitchWindow = true;
                break;
            }
        }
    }

    return bSwitchWindow;
}

From source file:page.Crawl.java

License:Open Source License

public static boolean run(Node father, String url, WebDriver driver) {
    System.out.println(" > crawling url: " + url);
    try {/*from w w w . j av  a2  s . co  m*/
        driver.get(url);
        try {
            Thread.sleep(Globals.SLEEP_WAITING_FOR_PAGE_LOAD);
        } catch (Exception ex) {
            System.out.println("InterruptedException in crawl.run()");
            ex.printStackTrace();
            System.exit(-1);
        }
        List<WebElement> list = null;
        int old_size = 0;
        int new_size = 0;
        int loop = 1;
        do { //SCROLL TILL THE END OF THE PAGE
            old_size = new_size;
            int THRESHOLD = loop * Globals.BASE_SCROLL_STEP;
            for (int i = 0; i < THRESHOLD; i++) {
                JavascriptExecutor jse = (JavascriptExecutor) driver;
                jse.executeScript("window.scrollTo(0,document.body.scrollHeight)", "");
                try {
                    Thread.sleep(Globals.SLEEP_BEFORE_SCROLL_MS);
                } catch (Exception ex) {
                    System.out.println("InterruptedException in crawl.run()");
                    ex.printStackTrace();
                    System.exit(-1);
                }
            }
            list = driver
                    .findElements(By.xpath("//div[starts-with(@class, '" + Globals.MAIN_CLASS_NAME + "')]"));
            new_size = list.size();
            //System.out.println("old: "+old_size+", new: "+new_size+", loop: "+loop);
            loop++;
        } while (old_size != new_size);

        if (new_size == 0) {
            return false;
        }

        for (WebElement element : list) {
            String date = "";
            String id = "";

            List<WebElement> ids = element
                    .findElements(By.xpath(".//a[contains(@class, '" + Globals.ID_CLASS_NAME + "')]"));
            for (WebElement id_element : ids) {
                String hovercard = id_element.getAttribute("data-hovercard");
                id = hovercard.replace(Globals.HOVERCARD_ID, "");
                //String href = id_element.getAttribute("href");
                //System.out.println("user: "+hovercard);
                //System.out.println("page: "+href);
            }
            List<WebElement> dates = element
                    .findElements(By.xpath(".//abbr[contains(@class, '" + Globals.DATE_CLASS + "')]"));
            for (WebElement id_date : dates) {
                date = id_date.getAttribute("title");
                //System.out.println("date: "+date);
            }

            if (id.equalsIgnoreCase("")) {
                System.out.println("ERRORE: id nullo per url " + url);
                return false;
            }

            Node current = new Node(id, date, father);

            List<WebElement> shared = element
                    .findElements(By.xpath(".//a[contains(@class, '" + Globals.SHARE_CLASS + "')]"));
            for (WebElement id_shared : shared) {
                String href = id_shared.getAttribute("href");
                //System.out.println("shares: "+href);
                //String text = id_shared.getText();
                //System.out.println(text 

                //DFS

                //OPEN NEW TAB
                WebElement body = driver.findElement(By.tagName("body"));
                body.sendKeys(Keys.CONTROL + "t");

                try {
                    Thread.sleep(Globals.SLEEP_WAITING_FOR_PAGE_LOAD);
                } catch (Exception ex) {
                    System.out.println("InterruptedException in crawl.run()");
                    ex.printStackTrace();
                    System.exit(-1);
                }

                //driver.switchTo().window(tabs.get(1));
                if (!run(current, href, driver)) {
                    body.sendKeys(Keys.CONTROL + "w");
                    return false;
                }

                ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
                driver.switchTo().window(tabs.get(tabs.size() - 1));
            }

            father.addChildren(current);
        }
    } catch (Exception e) {
        System.out.println("WARNING: unable to crawl url: " + url);
        e.printStackTrace();
    }

    //CLOSE CURRENT TAB
    WebElement body = driver.findElement(By.tagName("body"));
    body.sendKeys(Keys.CONTROL + "w");
    return true;
}

From source file:pawl.jbehave.step.BrowserSteps.java

License:Apache License

/**
 * Switch to a new window.//from  w  ww . j a v  a2 s.c o m
 */
@When("I switch to new window")
public void switchToNewWindow() {
    final WebDriver driver = browser.base();
    final String baseWindowHandle = driver.getWindowHandle();
    final Set<String> opened = driver.getWindowHandles();
    String newWindow;
    if (opened.size() > 1 && opened.remove(baseWindowHandle)) {
        final Iterator<String> iterator = opened.iterator();
        newWindow = iterator.next();
    } else {
        final WebDriverWait wait = new WebDriverWait(driver, Resources.base().explicitWait());
        newWindow = wait.until(WebExpectedConditions.get().anyWindowOtherThan(opened));
    }
    driver.switchTo().window(newWindow);
}