Example usage for org.openqa.selenium WebDriver getWindowHandle

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

Introduction

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

Prototype

String getWindowHandle();

Source Link

Document

Return an opaque handle to this window that uniquely identifies it within this driver instance.

Usage

From source file:jp.vmi.selenium.selenese.subcommand.GetAllWindowTitles.java

License:Apache License

@Override
public String[] execute(Context context, String... args) {
    WebDriver driver = context.getWrappedDriver();
    String current = driver.getWindowHandle();
    try {/*from w  ww.  jav a2  s  .c o m*/
        return driver.getWindowHandles().stream().map(handle -> {
            driver.switchTo().window(handle);
            return driver.getTitle();
        }).toArray(String[]::new);
    } finally {
        driver.switchTo().window(current);
    }
}

From source file:jp.vmi.selenium.selenese.subcommand.GetAttributeFromAllWindows.java

License:Apache License

@Override
public Object[] execute(Context context, String... args) {
    String attrName = args[ARG_ATTR_NAME];
    WebDriver driver = context.getWrappedDriver();
    String current = driver.getWindowHandle();
    try {//from   www  . ja v  a2  s  .c om
        return driver.getWindowHandles().stream().map(handle -> {
            driver.switchTo().window(handle);
            return ((JavascriptExecutor) driver).executeScript("return window[arguments[0]];", attrName);
        }).toArray();
    } finally {
        driver.switchTo().window(current);
    }
}

From source file:jp.vmi.selenium.selenese.subcommand.SeleneseRunnerWindows.java

License:Apache License

@Override
public void selectWindow(WebDriver driver, String windowID) {
    if (null == windowID || "null".equals(windowID) || "".equals(windowID)) {
        driver.switchTo().window(context.getInitialWindowHandle());
    } else if ("_blank".equals(windowID)) {
        selectBlankWindow(driver);/*from w ww. ja v  a  2  s.c om*/
    } else {
        if (windowID.startsWith("title=")) {
            selectWindowWithTitle(driver, windowID.substring("title=".length()));
            return;
        }

        if (windowID.startsWith("name=")) {
            windowID = windowID.substring("name=".length());
        }

        try {
            driver.switchTo().window(windowID);
        } catch (NoSuchWindowException e) {
            selectWindowWithTitle(driver, windowID);
        }
    }

    if (lastFrame.containsKey(driver.getWindowHandle())) {
        // If the frame has gone, fall back
        try {
            selectFrame(driver, lastFrame.get(driver.getWindowHandle()));
        } catch (SeleniumException e) {
            lastFrame.remove(driver.getWindowHandle());
        }
    }
}

From source file:jp.vmi.selenium.selenese.subcommand.SeleneseRunnerWindows.java

License:Apache License

@Override
public void selectFrame(WebDriver driver, String locator) {
    if ("relative=top".equals(locator)) {
        driver.switchTo().defaultContent();
        lastFrame.remove(driver.getWindowHandle());
        return;/* w  w w .j av a2 s .c om*/
    }

    // TODO uncomment when support parentFrame() on next Selenium.
    //    if ("relative=up".equals(locator)) {
    //      driver.switchTo().parentFrame();
    //      lastFrame.put(driver.getWindowHandle(), locator);
    //      return;
    //    }

    if (locator.startsWith("index=")) {
        try {
            int index = Integer.parseInt(locator.substring("index=".length()));
            lastFrame.put(driver.getWindowHandle(), locator);
            driver.switchTo().frame(index);
            return;
        } catch (NumberFormatException e) {
            throw new SeleniumException(e.getMessage(), e);
        } catch (NoSuchFrameException e) {
            throw new SeleniumException(e.getMessage(), e);
        }
    }

    if (locator.startsWith("id=")) {
        locator = locator.substring("id=".length());
    } else if (locator.startsWith("name=")) {
        locator = locator.substring("name=".length());
    }

    try {
        lastFrame.put(driver.getWindowHandle(), locator);
        driver.switchTo().frame(locator);
    } catch (NoSuchFrameException e) {
        throw new SeleniumException(e.getMessage(), e);
    }
}

From source file:jp.vmi.selenium.selenese.subcommand.SeleneseRunnerWindows.java

License:Apache License

/**
 * Selects the only <code>_blank</code> window. A window open with <code>target='_blank'</code>
 * will have a <code>window.name = null</code>.
 * <br>/* w w w  .  j av  a2s. c o  m*/
 * <p>
 * This method assumes that there will only be one single <code>_blank</code> window and selects
 * the first one with no name. Therefore if for any reasons there are multiple windows with
 * <code>window.name = null</code> the first found one will be selected.
 * </p>
 * <p>
 * If none of the windows have <code>window.name = null</code> the last selected one will be
 * re-selected and a {@link SeleniumException} will be thrown.
 * </p>
 *
 * @throws NoSuchWindowException if no window with <code>window.name = null</code> is found.
 */
@Override
public void selectBlankWindow(WebDriver driver) {
    String current = driver.getWindowHandle();
    // Find the first window without a "name" attribute
    List<String> handles = new ArrayList<String>(driver.getWindowHandles());
    for (String handle : handles) {
        // the original window will never be a _blank window, so don't even look at it
        // this is also important to skip, because the original/root window won't have
        // a name either, so if we didn't know better we might think it's a _blank popup!
        if (handle.equals(context.getInitialWindowHandle())) {
            continue;
        }
        driver.switchTo().window(handle);
        String value = (String) ((JavascriptExecutor) driver).executeScript("return window.name;");
        if (value == null || "".equals(value)) {
            // We found it!
            return;
        }
    }
    // We couldn't find it
    driver.switchTo().window(current);
    throw new SeleniumException("Unable to select window _blank");
}

From source file:minium.web.internal.drivers.WindowDelegatorWebDriver.java

License:Apache License

public WindowDelegatorWebDriver(DelegatorWebDriver webDriver) {
    super(webDriver);
    webDriver.addObserver(this);
    WebDriver delegateWebDriver = webDriver.getDelegate();
    if (delegateWebDriver != null) {
        this.windowHandle = delegateWebDriver.getWindowHandle();
    }/*from   www  .  ja  v  a  2 s. c o  m*/
}

From source file:minium.web.internal.drivers.WindowDelegatorWebDriver.java

License:Apache License

@Override
public void update(Observable o, Object arg) {
    WebDriver webDriver = (WebDriver) arg;
    this.windowHandle = webDriver == null ? null : webDriver.getWindowHandle();
}

From source file:minium.web.internal.drivers.WindowWebDriver.java

License:Apache License

public WindowWebDriver(WebDriver webDriver, String windowHandle) {
    super(webDriver);
    this.windowHandle = windowHandle == null ? webDriver.getWindowHandle() : windowHandle;
}

From source file:omelet.driver.DriverUtility.java

License:Apache License

/***
 * Switching between windows./*from w  w w  .j  a v a  2s.co m*/
 * 
 * @param driver
 * @param sString
 *            :Target window Title
 * @return:True if window switched
 */
public static boolean switchToWindow(WebDriver driver, String sString) {
    String currentHandle = driver.getWindowHandle();
    Set<String> handles = driver.getWindowHandles();
    if (!handles.isEmpty()) {
        for (String handle : handles) {
            LOGGER.debug("Switching to other window");
            driver.switchTo().window(handle);
            if (sString.equals(driver.getTitle())) {
                LOGGER.info("switched to window with title:" + sString);
                return true;
            }
        }
        driver.switchTo().window(currentHandle);

        LOGGER.info("Window with title:" + sString + " Not present,Not able to switch");
        return false;
    } else {
        LOGGER.info("There is only one window handle :" + currentHandle);
        return false;
    }
}

From source file:org.bigtester.ate.model.page.atewebdriver.MultiWindowsHandler.java

License:Apache License

/**
 * Refresh windows list.//from   w  ww  .  ja  v a2  s. c  o  m
 *
 * @param webD
 *            the web d
 */
private void refreshWindowsList(@Nullable WebDriver webD) {
    if (null == webD)
        throw GlobalUtils.createNotInitializedException("Web Driver");
    Set<String> allWinHandles = webD.getWindowHandles();
    for (String winH : allWinHandles) {
        if (null == winH)
            throw GlobalUtils.createInternalError("web driver get all windows handles error.");
        boolean winAlreadyStored = false; //NOPMD
        for (BrowserWindow bWin : windows) {
            if (bWin.getWindowHandle().equals(winH)) {
                winAlreadyStored = true;
                break;
            }
        }
        if (!winAlreadyStored) {
            BrowserWindow temp = new BrowserWindow(winH, driver);
            windows.add(temp);
        }
    }
    for (Iterator<BrowserWindow> iter = windows.iterator(); iter.hasNext();) {
        BrowserWindow winH2 = iter.next();
        if (allWinHandles.contains(winH2.getWindowHandle())) {
            continue;
        } else {
            iter.remove();
        }
    }
    for (Iterator<BrowserWindow> iter = windows.iterator(); iter.hasNext();) {
        BrowserWindow winH2 = iter.next();
        winH2.refreshFrames();
    }

    if (StringUtils.isEmpty(this.mainWindowHandler) || StringUtils.isEmpty(this.mainWindowTitle)) {
        this.mainWindowHandler = windows.get(0).getWindowHandle();
        String currentWinHandle = webD.getWindowHandle();
        webD.switchTo().window(this.mainWindowHandler);
        this.mainWindowTitle = windows.get(0).getMyWd().getTitle();
        webD.switchTo().window(currentWinHandle);
    }

}