List of usage examples for org.openqa.selenium WebDriver getWindowHandle
String getWindowHandle();
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); } }