List of usage examples for org.openqa.selenium WebDriver switchTo
TargetLocator switchTo();
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 w w. j a v a2 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.// ww w .ja v a 2s .c o 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("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
@Override public boolean _executeStep(Page pageObject, WebDriver webDriver, Map<String, Object> contextMap, Map<String, PageData> dataMap, Map<String, Page> pageMap) throws Exception { if (log.isDebugEnabled()) log.debug("Execution Function " + getName()); if (getParameterList().size() < 1) throw new IllegalArgumentException( "First Parameter Switchtype should be provided with values BY_WINTITLE| BY_WINURL|BY_FRAME|BY_PARENTFRAME|BY_DEFAULT"); try {/* w w w. j a va 2 s.com*/ // Verify if the parameter-1 values are correct String switchType = getParameterValue(getParameterList().get(0), contextMap, dataMap) + ""; String switchExpValue = ""; switch (SwitchType.valueOf(switchType)) { case BY_WINTITLE: if (getParameterList().size() < 2) throw new IllegalArgumentException("Please provide the title for the window as a parameter"); switchExpValue = getParameterValue(getParameterList().get(1), contextMap, dataMap) + ""; return verifySwitchWindow(webDriver, switchType, switchExpValue); case BY_WINURL: if (getParameterList().size() < 2) throw new IllegalArgumentException("Please provide the URL for the window as a parameter"); switchExpValue = getParameterValue(getParameterList().get(1), contextMap, dataMap) + ""; return verifySwitchWindow(webDriver, switchType, switchExpValue); case BY_FRAME: if (getParameterList().size() < 2) throw new IllegalArgumentException("Please provide the Frame id for the Frame as a parameter"); switchExpValue = getParameterValue(getParameterList().get(1), contextMap, dataMap) + ""; webDriver.switchTo().frame(switchExpValue); break; case BY_PARENTFRAME: webDriver.switchTo().parentFrame(); break; case BY_DEFAULT: webDriver.switchTo().defaultContent(); break; case BY_WINCLOSE: webDriver.close(); break; case BY_ELEMENT: Element currentElement = getElement(pageObject, contextMap, webDriver, dataMap); if (currentElement == null) { log.warn("Attempting to switch to frame identified by " + getName() + " that does not exist"); return false; } WebElement nativeElement = (WebElement) currentElement.getNative(); if (nativeElement instanceof MorelandWebElement) nativeElement = ((MorelandWebElement) nativeElement).getWebElement(); webDriver.switchTo().frame(nativeElement); break; case BY_ALERT: WebDriverWait alertWait = new WebDriverWait(webDriver, 5); alertWait.until(ExpectedConditions.alertIsPresent()); Alert alert = webDriver.switchTo().alert(); alert.accept(); break; case BY_MAXIMIZE: webDriver.manage().window().maximize(); break; default: throw new IllegalArgumentException( "Parameter switchtype should be BY_WINTITLE| BY_WINURL|BY_FRAME|BY_PARENTFRAME|BY_DEFAULT|BY_ALERT|BY_ELEMENT|BY_MAXIMIZE"); } } catch (Exception e) { log.error("Error executing function for validation [" + getName() + "] on page [" + getPageName() + "]", e); return false; } return true; }
From source file:org.xframium.page.keyWord.step.spi.KWSWindow.java
License:Open Source License
/** * Verify switch window./*from ww w .j ava 2 s . c o 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:org.xwiki.test.selenium.framework.AlbatrossSkinExecutor.java
License:Open Source License
private void sendKeysToTinyMCE(CharSequence keysToSend) { WebDriver driver = getDriver(); String windowHandle = driver.getWindowHandle(); try {// w ww. j a v a 2 s .c o m WebElement iframe = driver.findElement(By.className("mceEditorIframe")); driver.switchTo().frame(iframe).switchTo().activeElement().sendKeys(keysToSend); } finally { driver.switchTo().window(windowHandle); } }
From source file:org.xwiki.test.ui.po.editor.wysiwyg.RichTextAreaElement.java
License:Open Source License
/** * @return the HTML element that has the focus in the Rich editor *///from w ww. ja v a2s . co m private WebElement getActiveElement() { // Switch to the iframe containing the rich text area content. // // Note: ATM this line doesn't work with Ghostdriver 1.0.3/PhantomJS 1.9, see // https://github.com/detro/ghostdriver/issues/226 // Current workaround: WebDriver frameDriver = getDriver().switchTo().frame(1); WebDriver frameDriver = getDriver().switchTo().frame(iframe); // Select the locator allowing us to find the current active element (element with the focus). WebDriver.TargetLocator locator = frameDriver.switchTo(); // Return the active element return locator.activeElement(); }
From source file:org.xwiki.test.ui.WebDriverFactory.java
License:Open Source License
public WebDriver createWebDriver(String browserName) { WebDriver driver; if (browserName.startsWith("*firefox")) { // Native events are disabled by default for Firefox on Linux as it may cause tests which open many windows // in parallel to be unreliable. However, native events work quite well otherwise and are essential for some // of the new actions of the Advanced User Interaction. We need native events to be enable especially for // testing the WYSIWYG editor. See http://code.google.com/p/selenium/issues/detail?id=2331 . FirefoxProfile profile = new FirefoxProfile(); profile.setEnableNativeEvents(true); // Make sure Firefox doesn't upgrade automatically on CI agents. profile.setPreference("app.update.auto", false); profile.setPreference("app.update.enabled", false); profile.setPreference("app.update.silent", false); driver = new FirefoxDriver(profile); // Hide the Add-on bar (from the bottom of the window, with "WebDriver" written on the right) because it can // prevent buttons or links from being clicked when they are beneath it and native events are used. // See https://groups.google.com/forum/#!msg/selenium-users/gBozOynEjs8/XDxxQNmUSCsJ // We need to load a page before sending the keys otherwise WebDriver throws ElementNotVisible exception. driver.get("data:text/plain;charset=utf-8,XWiki"); driver.switchTo().activeElement().sendKeys(Keys.chord(Keys.CONTROL, "/")); } else if (browserName.startsWith("*iexplore")) { driver = new InternetExplorerDriver(); } else if (browserName.startsWith("*chrome")) { driver = new ChromeDriver(); } else if (browserName.startsWith("*phantomjs")) { DesiredCapabilities capabilities = DesiredCapabilities.phantomjs(); capabilities.setCapability("handlesAlerts", true); try {//from w w w.j a v a 2 s . c o m driver = new PhantomJSDriver(ResolvingPhantomJSDriverService.createDefaultService(), capabilities); } catch (IOException e) { throw new RuntimeException(e); } } else { throw new RuntimeException("Unsupported browser name [" + browserName + "]"); } // Maximize the browser window by default so that the page has a standard layout. Individual tests can resize // the browser window if they want to test how the page layout adapts to limited space. This reduces the // probability of a test failure caused by an unexpected layout (nested scroll bars, floating menu over links // and buttons and so on). driver.manage().window().maximize(); return driver; }
From source file:org.xwiki.test.wysiwyg.framework.AbstractWysiwygTestCase.java
License:Open Source License
/** * Selects the rich text area frame. Selectors are relative to the edited document after calling this method. *///w w w . ja va 2 s . co m public void selectRichTextAreaFrame() { WebDriver driver = getDriver(); driver.switchTo().frame(driver.findElement(By.className("gwt-RichTextArea"))).switchTo().activeElement(); }
From source file:org.zanata.util.TestEventForScreenshotListener.java
License:Open Source License
private Optional<Alert> getAlert(WebDriver driver) { try {/*from w ww . j a v a 2 s. c om*/ return Optional.of(driver.switchTo().alert()); } catch (NoAlertPresentException nape) { return Optional.empty(); } }
From source file:org.zanata.util.WebElementUtil.java
License:Open Source License
/** * This method is used to set JSF rich text editor (KCEditor) content. * * @param driver/* w w w .ja v a 2 s. co m*/ * web driver * @param richEditorWrapperField * the wrapper div of the editor * @param content * content wants to set */ public static void setRichTextEditorContent(WebDriver driver, WebElement richEditorWrapperField, String content) { // This is how we can change JSF rich text editor content. WebElement richTextEditorFrame = richEditorWrapperField.findElement(By.tagName("iframe")); driver.switchTo().frame(richTextEditorFrame); ((JavascriptExecutor) driver).executeScript("document.body.innerHTML='" + content + "'"); driver.switchTo().defaultContent(); }