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