Example usage for org.openqa.selenium WebDriver manage

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

Introduction

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

Prototype

Options manage();

Source Link

Document

Gets the Option interface

Usage

From source file:com.gargoylesoftware.htmlunit.libraries.PrototypeTestBase.java

License:Apache License

/**
 * Runs the specified test.//from w  ww  .  j a  va  2  s  .co m
 * @param filename the test file to run
 * @throws Exception if the test fails
 */
protected void test(final String filename) throws Exception {
    final WebDriver driver = getWebDriver();
    if (!(driver instanceof HtmlUnitDriver)) {
        try {
            driver.manage().window().setSize(new Dimension(1272, 768));
        } catch (final WebDriverException e) {
            // ChromeDriver version 0.5 (Mar 26, 2013) does not support the setSize command
            LOG.warn(e.getMessage(), e);
        }
    }
    driver.get(getBaseUrl() + filename);

    // wait
    final long runTime = 60 * DEFAULT_WAIT_TIME;
    final long endTime = System.currentTimeMillis() + runTime;

    while (!testFinished(driver)) {
        Thread.sleep(100);

        if (System.currentTimeMillis() > endTime) {
            fail("Test '" + filename + "' runs too long (longer than " + runTime / 1000 + "s)");
        }
    }

    String expected = getExpectations(getBrowserVersion(), filename);
    WebElement testlog = driver.findElement(By.id("testlog"));
    String actual = testlog.getText();

    try {
        testlog = driver.findElement(By.id("testlog_2"));
        actual = actual + "\n" + testlog.getText();
    } catch (final NoSuchElementException e) {
        // ignore
    }

    // ignore Info lines
    expected = expected.replaceAll("Info:.*", "Info: -- skipped for comparison --");
    actual = actual.replaceAll("Info:.*", "Info: -- skipped for comparison --");

    // normalize line break
    expected = expected.replaceAll("\r\n", "\n");
    actual = actual.replaceAll("\r\n", "\n");

    // dump the result page if not ok
    if (System.getProperty(PROPERTY_GENERATE_TESTPAGES) != null && !expected.equals(actual)) {
        final File tmpDir = new File(System.getProperty("java.io.tmpdir"));
        final File f = new File(tmpDir, "prototype" + getVersion() + "_result_" + filename);
        FileUtils.writeStringToFile(f, driver.getPageSource(), UTF_8);
        LOG.info("Test result for " + filename + " written to: " + f.getAbsolutePath());
    }

    assertEquals(expected, actual);
}

From source file:com.gargoylesoftware.htmlunit.libraries.TinyMceTest.java

License:Apache License

private void test(final String fileName, final int expectedTotal, final int expectedFailed) throws Exception {
    final String url = URL_FIRST + "tests/" + fileName + ".html";
    assertNotNull(url);/*from w  w  w .j a va  2s. co  m*/

    final WebDriver driver = getWebDriver();
    driver.get(url);

    driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
    final WebElement result = driver.findElement(By.id("testresult"));
    driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);

    final WebElement totalSpan = result.findElement(By.xpath("./span[@class='all']"));
    final int total = Integer.parseInt(totalSpan.getText());
    assertEquals(expectedTotal, total);

    final List<WebElement> failures = driver.findElements(By.xpath("//li[@class='fail']"));
    final StringBuilder msg = new StringBuilder();
    for (WebElement failure : failures) {
        msg.append(failure.getText());
        msg.append("\n\n");
    }

    final WebElement failedSpan = result.findElement(By.xpath("./span[@class='bad']"));
    final int failed = Integer.parseInt(failedSpan.getText());
    assertEquals(msg.toString(), expectedFailed, failed);
}

From source file:com.gargoylesoftware.htmlunit.libraries.YuiTest.java

License:Apache License

private void doTest(final String fileName, final List<String> knownFailingTests, final String buttonToPush,
        final long timeToWait) throws Exception {

    // final URL url = getClass().getClassLoader().getResource("tests/" + fileName);
    final String url = URL_FIRST + "tests/" + fileName;
    assertNotNull(url);//from  w  ww.  j a v a  2 s .co  m

    final WebDriver driver = getWebDriver();
    driver.get(url);

    if (buttonToPush != null) {
        driver.findElement(By.id(buttonToPush)).click();
    }

    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    final WebElement logDiv = driver.findElement(By.className("yui-log-bd"));
    final WebElement lastMessage = logDiv
            .findElement(By.xpath("pre[last() and contains(string(.), 'Testing completed')]"));

    LOG.info(lastMessage.getText());

    driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
    final List<WebElement> tests = driver.findElements(By.xpath("//p[span[@class='pass' or @class='fail']]"));
    if (tests.isEmpty()) {
        fail("No tests were executed!");
    }

    for (final WebElement pre : tests) {
        final String[] parts;
        try {
            parts = pre.getText().split(" ");
        } catch (final StaleElementReferenceException e) {
            continue; // happens for FF17 on imageLoader test
        }
        final String result = parts[0];
        final String testName = parts[1].substring(0, parts[1].length() - 1);
        if ("pass".equalsIgnoreCase(result)) {
            assertTrue("Test case '" + testName + "' is in the known failing list, but passes!",
                    !knownFailingTests.contains(testName));
        } else {
            assertTrue("Test case '" + testName + "' is not in the known failing list, but fails!",
                    knownFailingTests.contains(testName));
        }
    }
}

From source file:com.gargoylesoftware.htmlunit.WebDriverTestCase.java

License:Apache License

/**
 * Same as {@link #loadPageWithAlerts2(String)}... but doesn't verify the alerts.
 * @param html the HTML to use/*from   ww w .  j  av a  2s  .  co  m*/
 * @param url the url to use to load the page
 * @param contentType the content type to return
 * @param charset the charset
 * @return the web driver
 * @throws Exception if something goes wrong
 */
protected final WebDriver loadPage2(String html, final URL url, final String contentType, final Charset charset)
        throws Exception {
    if (useStandards_ != null) {
        if (html.startsWith(HtmlPageTest.STANDARDS_MODE_PREFIX_)) {
            fail("HTML must not be prefixed with Standards Mode.");
        }
        if (useStandards_) {
            html = HtmlPageTest.STANDARDS_MODE_PREFIX_ + html;
        }
    }
    final MockWebConnection mockWebConnection = getMockWebConnection();
    mockWebConnection.setResponse(url, html, contentType, charset);
    startWebServer(mockWebConnection);

    WebDriver driver = getWebDriver();
    if (!(driver instanceof HtmlUnitDriver)) {
        try {
            driver.manage().window().setSize(new Dimension(1272, 768));
        } catch (final NoSuchSessionException e) {
            // maybe the driver was killed by the test before; setup a new one
            shutDownRealBrowsers();

            driver = getWebDriver();
            driver.manage().window().setSize(new Dimension(1272, 768));
        }
    }
    driver.get(url.toExternalForm());

    return driver;
}

From source file:com.gargoylesoftware.htmlunit.WebDriverTestCase.java

License:Apache License

/**
 * Release resources but DON'T close the browser if we are running with a real browser.
 * Note that HtmlUnitDriver is not cached by default, but that can be configured by {@link #isWebClientCached()}.
 *//*from  w  w w .j a v  a2 s.  co  m*/
@After
@Override
public void releaseResources() {
    super.releaseResources();

    if (!isWebClientCached()) {
        if (webDriver_ != null) {
            webDriver_.quit();
        }
        assertTrue("There are still JS threads running after the test", getJavaScriptThreads().isEmpty());
    }

    if (useRealBrowser()) {
        synchronized (WEB_DRIVERS_REAL_BROWSERS) {
            final WebDriver driver = WEB_DRIVERS_REAL_BROWSERS.get(getBrowserVersion());
            if (driver != null) {
                try {
                    final String currentWindow = driver.getWindowHandle();

                    final Set<String> handles = driver.getWindowHandles();
                    // close all windows except the current one
                    handles.remove(currentWindow);

                    if (handles.size() > 0) {
                        for (final String handle : handles) {
                            try {
                                driver.switchTo().window(handle);
                                driver.close();
                            } catch (final NoSuchWindowException e) {
                                LOG.error("Error switching to browser window; quit browser.", e);
                                WEB_DRIVERS_REAL_BROWSERS.remove(getBrowserVersion());
                                WEB_DRIVERS_REAL_BROWSERS_USAGE_COUNT.remove(getBrowserVersion());
                                driver.quit();
                                return;
                            }
                        }

                        // we have to force WebDriver to treat the remaining window
                        // as the one we like to work with from now on
                        // looks like a web driver issue to me (version 2.47.2)
                        driver.switchTo().window(currentWindow);
                    }

                    driver.manage().deleteAllCookies();

                    // in the remaining window, load a blank page
                    driver.get("about:blank");
                } catch (final WebDriverException e) {
                    shutDownRealBrowsers();
                }
            }
        }
    }
}

From source file:com.ggasoftware.jdiuitest.web.selenium.driver.SeleniumDriverFactory.java

License:Open Source License

public WebDriver getDriver(String driverName) {
    try {//  w ww . java2 s .c o m
        if (runDrivers.keys().contains(driverName))
            return runDrivers.get(driverName);
        WebDriver resultDriver = drivers.get(driverName).invoke();
        runDrivers.add(driverName, resultDriver);
        if (resultDriver == null)
            throw exception("Can't get Webdriver '%s'. This Driver name not registered", driverName);
        resultDriver.manage().window().maximize();
        resultDriver.manage().timeouts().implicitlyWait(timeouts.waitElementSec, SECONDS);
        return resultDriver;
    } catch (Exception ex) {
        throw exception("Can't get driver");
    }
}

From source file:com.google.appengine.tck.login.UserLogin.java

License:Open Source License

public void login(@Observes EventContext<Before> event) throws Exception {
    Before before = event.getEvent();/*from   w ww . java 2 s.co  m*/

    UserIsLoggedIn userIsLoggedIn = null;
    if (before.getTestMethod().isAnnotationPresent(UserIsLoggedIn.class)) {
        userIsLoggedIn = before.getTestMethod().getAnnotation(UserIsLoggedIn.class);
    } else if (before.getTestClass().isAnnotationPresent(UserIsLoggedIn.class)) {
        userIsLoggedIn = before.getTestClass().getAnnotation(UserIsLoggedIn.class);
    }

    if (userIsLoggedIn != null) {
        final URI baseUri = getBaseURI(before.getTestMethod());
        final WebDriver driver = createWebDriver();
        try {
            driver.manage().deleteAllCookies();

            driver.navigate().to(baseUri + USER_LOGIN_SERVLET_PATH + "?location="
                    + URLEncoder.encode(userIsLoggedIn.location(), "UTF-8"));

            // did we navigate to this requested page, or did we get redirected/forwarded to login already
            List<WebElement> loginUrlElts = driver.findElements(By.id("login-url"));
            if (loginUrlElts.size() > 0) {
                String loginURL = loginUrlElts.get(0).getText();

                // check
                if (isInternalLink(loginURL)) {
                    loginURL = baseUri + loginURL;
                }

                // go-to login page
                driver.navigate().to(loginURL);
            }

            // find custom login handler, if exists
            LoginHandler loginHandler = TestBase.instance(getClass(), LoginHandler.class);
            if (loginHandler == null) {
                loginHandler = new DefaultLoginHandler();
            }
            loginHandler.login(driver, new UserLoginContext(userIsLoggedIn));
            // copy cookies
            Set<Cookie> cookies = driver.manage().getCookies();
            for (Cookie cookie : cookies) {
                ModulesApi.addCookie(cookie.getName(), cookie.getValue());
            }
        } finally {
            driver.close();
        }
    }

    event.proceed();
}

From source file:com.google.iphone.testing.nativedriver.client.NativeDriverTest.java

License:Apache License

public void testNativeDriver() throws Exception {
    WebDriver driver = new IosNativeDriver();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

    // Type user name
    WebElement userName = driver.findElement(By.placeholder("User Name"));
    userName.clear();// w  w w.j a v a2  s  .  co  m
    userName.sendKeys("NativeDriver");
    // Type password
    WebElement password = driver.findElement(By.placeholder("Password"));
    password.clear();
    password.sendKeys("abcdefgh");
    // Tap "Sign in" button
    driver.findElement(By.text("Sign in")).click();

    // Verify correct title is displayed
    String text = driver.getTitle();
    assertEquals("NativeDriver", text);

    // Type text in WebView
    WebElement element = driver.findElement(By.name("q"));
    element.sendKeys("NativeDriver");
    element.submit();

    // Click link
    driver.findElement(By.partialLinkText("GUI automation")).click();
    // Verify the page
    assertEquals("nativedriver", driver.findElement(By.id("pname")).getText());
}

From source file:com.googlesites.WebDriverInstance.java

public void setCurrentDriver(WebDriver driver) {

    this.driver = driver;
    driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    new Sikuli().focusOnBrowser();
}

From source file:com.hack23.cia.systemintegrationtest.AbstractRoleSystemTest.java

License:Apache License

/**
 * Gets the web driver./*w  w  w .  j ava  2  s.c o  m*/
 *
 * @return the web driver
 */
protected final synchronized WebDriver getWebDriver() {

    WebDriver driver = null;
    if ("firefox".equals(browser)) {
        final DesiredCapabilities capabilities = DesiredCapabilities.firefox();
        capabilities.setCapability("marionette", true);
        driver = new FirefoxDriver(capabilities);
    } else if ("chrome".equals(browser)) {
        driver = new ChromeDriver();
    } else if ("htmlunit-firefox".equals(browser)) {
        final HtmlUnitDriver htmlUnitDriver = new HtmlUnitDriver(BrowserVersion.FIREFOX_45);
        htmlUnitDriver.setJavascriptEnabled(true);
        driver = htmlUnitDriver;
    } else if ("htmlunit-ie11".equals(browser)) {
        final HtmlUnitDriver htmlUnitDriver = new HtmlUnitDriver(BrowserVersion.INTERNET_EXPLORER);
        htmlUnitDriver.setJavascriptEnabled(true);
        driver = htmlUnitDriver;
    } else if ("htmlunit-edge".equals(browser)) {
        final HtmlUnitDriver htmlUnitDriver = new HtmlUnitDriver(BrowserVersion.EDGE);
        htmlUnitDriver.setJavascriptEnabled(true);
        driver = htmlUnitDriver;
    } else if ("htmlunit-chrome".equals(browser)) {
        final HtmlUnitDriver htmlUnitDriver = new HtmlUnitDriver(BrowserVersion.CHROME);
        htmlUnitDriver.setJavascriptEnabled(true);
        driver = htmlUnitDriver;
    } else {
        fail("No valid browser parameter:" + browser);
    }

    driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
    driver.manage().timeouts().setScriptTimeout(30, TimeUnit.SECONDS);

    webDriverMap.put(browser, driver);
    driver.manage().window().maximize();
    return driver;
}