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