Example usage for org.openqa.selenium.interactions Actions click

List of usage examples for org.openqa.selenium.interactions Actions click

Introduction

In this page you can find the example usage for org.openqa.selenium.interactions Actions click.

Prototype

public Actions click() 

Source Link

Document

Clicks at the current mouse location.

Usage

From source file:cc.kune.selenium.SeleniumUtils.java

License:GNU Affero Public License

/**
 * Move mouse to and click./*from   ww  w .j ava 2 s  .co m*/
 * 
 * @param webdriver
 *          the webdriver
 * @param element
 *          the element
 * @param xOffset
 *          the x offset
 * @param yOffset
 *          the y offset
 */
public static void moveMouseToAndClick(final WebDriver webdriver, final WebElement element, final int xOffset,
        final int yOffset) {
    // showCursor(webdriver, element, xOffset, yOffset);
    final Actions actions = new Actions(webdriver);
    actions.moveToElement(element, xOffset, yOffset);
    actions.click();
    final Action action = actions.build();
    action.perform();
}

From source file:com.cengage.mindtap.keywords.AssignableActivityPageActions.java

protected void clickOnElementUsingActionBuilder(WebElement element) {
    Actions builder = new Actions(driver);
    Actions MenuItems = builder.moveToElement(element);
    waitTOSync();// w  w  w .ja va  2 s .  c o m
    MenuItems.click().build().perform();
    waitTOSync();
}

From source file:com.ibm.watson.app.qaclassifier.selenium.MenuIT.java

License:Open Source License

@Ignore
@Test//from   w w  w. java 2 s  .c om
public void clickMenuIconThenAwayFromMenuIconHidesMenuList() {
    WebElement menuIconContainer = driver.findElement(By.id("menuIconContainerDesktop"));
    WebElement menuIconImg = menuIconContainer
            .findElement(By.xpath(".//span[contains(concat(' ', @class, ' '), ' menuIconImg ')]"));

    // Clicking away from the menu icon should also close the menu
    menuIconImg.click();
    WebElement menuList = driver.findElement(By.tagName("menu-list"));
    assertTrue("After clicking the menu icon, the menu list is visible", menuList.isDisplayed());

    Actions action = new Actions(driver);
    action.moveToElement(driver.findElement(By.tagName("body")), 0, 0);
    action.click().build().perform();
    assertFalse("After clicking outside the menu icon, the menu list is gone", menuList.isDisplayed());
}

From source file:com.ibm.watson.app.qaclassifier.selenium.MenuIT.java

License:Open Source License

@Test
public void closeMenuOverlayByClickingOutsideOfContent() {
    WebElement menuIconContainer = driver.findElement(By.id("menuIconContainerDesktop"));
    WebElement menuIconImg = menuIconContainer
            .findElement(By.xpath(".//span[contains(concat(' ', @class, ' '), ' menuIconImg ')]"));

    menuIconImg.click();//w  w w .j av  a  2s. c  o m
    WebElement menuList = driver.findElement(By.className("menu-list"));
    List<WebElement> menuOptions = menuList.findElements(By.xpath(".//ul/li"));

    // The first item should be home, which is hidden on Desktop, so skip it and do the second one
    WebElement firstMenuOption = menuOptions.get(2);
    firstMenuOption.click();

    // Click outside of the content
    WebElement menuOverlay = driver.findElement(By.id("menuOverlay"));
    WebElement menuContent = menuOverlay.findElement(By.xpath(".//div[@id='menu']"));
    Actions action = new Actions(driver);
    action.moveToElement(menuContent, -1, -1);
    action.click().build().perform();
    assertTrue("Clicking outside of the content closes the menu overlay",
            driver.findElements(By.id("menuOverlay")).size() == 0);
}

From source file:com.ibm.watson.app.qaclassifier.selenium.MenuIT.java

License:Open Source License

@Test
public void clickingOnMenuContentDoesNotCloseOverlay() {
    WebElement menuIconContainer = driver.findElement(By.id("menuIconContainerDesktop"));
    WebElement menuIconImg = menuIconContainer
            .findElement(By.xpath(".//span[contains(concat(' ', @class, ' '), ' menuIconImg ')]"));

    menuIconImg.click();//w ww . j  a  v  a 2  s .c  om
    WebElement menuList = driver.findElement(By.className("menu-list"));
    List<WebElement> menuOptions = menuList.findElements(By.xpath(".//ul/li"));

    // The first item should be home, which is hidden on Desktop, so skip it and do the second one
    WebElement firstMenuOption = menuOptions.get(2);
    firstMenuOption.click();

    // Click inside of the content
    WebElement menuOverlay = driver.findElement(By.id("menuOverlay"));
    WebElement menuContent = menuOverlay.findElement(By.xpath(".//div[@id='menu']"));
    Actions action = new Actions(driver);
    action.moveToElement(menuContent, 1, 1);
    action.click().build().perform();
    assertTrue("Clicking inside of the content does not close the menu overlay",
            driver.findElements(By.id("menuOverlay")).size() == 1);
}

From source file:com.machinepublishers.jbrowserdriver.diagnostics.Test.java

License:Apache License

private void doTests() {
    JBrowserDriver driver = null;/*  w ww .  ja  v a2  s  . co m*/
    Thread shutdownHook = null;
    try {
        HttpServer.launch(TEST_PORT_HTTP);
        final File cacheDir = Files.createTempDirectory("jbd_test_cache").toFile();
        final File userDataDir = Files.createTempDirectory("jbd_test_userdata").toFile();
        shutdownHook = new Thread(new Runnable() {
            @Override
            public void run() {
                FileUtils.deleteQuietly(cacheDir);
                FileUtils.deleteQuietly(userDataDir);
            }
        });
        Runtime.getRuntime().addShutdownHook(shutdownHook);
        final String mainPage = "http://" + InetAddress.getLoopbackAddress().getHostAddress() + ":"
                + TEST_PORT_HTTP;
        final int ajaxWait = 150;
        final Settings.Builder builder = Settings.builder().processes(TEST_PORTS_RMI)
                .screen(new Dimension(1024, 768)).logger(null).logJavascript(true).ajaxWait(ajaxWait)
                .cacheDir(cacheDir).cache(true).ignoreDialogs(false);
        driver = new JBrowserDriver(builder.build());

        /*
         * Load a page
         */
        driver.get(mainPage);
        test(driver.getStatusCode() == 200);
        long initialRequestId = HttpServer.previousRequestId();

        /*
         * Load page from cache
         */
        driver.get(mainPage);
        test(driver.getStatusCode() == 200);
        test(HttpServer.previousRequestId() == initialRequestId);
        boolean viaHeader = false;
        for (String line : HttpServer.previousRequest()) {
            if (line.toLowerCase().startsWith("via:")) {
                viaHeader = true;
                break;
            }
        }
        test(!viaHeader);

        /*
         * Driver reset
         */
        driver.reset();
        driver.get(mainPage);
        test(driver.getStatusCode() == 200);
        test(HttpServer.previousRequestId() == initialRequestId);
        driver.reset(builder.cacheDir(null).build());
        driver.get(mainPage);
        test(driver.getStatusCode() == 200);
        test(HttpServer.previousRequestId() != initialRequestId);

        /*
         * Javascript logs
         */
        int messages = 0;
        for (LogEntry entry : driver.manage().logs().get("javascript").filter(Level.ALL)) {
            ++messages;
            test(!StringUtils.isEmpty(entry.getMessage()));
        }
        test(messages == 3);

        /*
         * User-data directory
         */
        driver.findElement(By.id("populate-local-storage")).click();
        driver.findElement(By.id("load-from-local-storage")).click();
        test("test-value".equals(driver.findElement(By.id("local-storage-value-holder")).getText()));
        driver.get(mainPage);
        driver.findElement(By.id("load-from-local-storage")).click();
        test("test-value".equals(driver.findElement(By.id("local-storage-value-holder")).getText()));
        driver.reset();
        driver.get(mainPage);
        driver.findElement(By.id("load-from-local-storage")).click();
        test("".equals(driver.findElement(By.id("local-storage-value-holder")).getText()));
        driver.reset(builder.userDataDirectory(userDataDir).build());
        driver.get(mainPage);
        driver.findElement(By.id("populate-local-storage")).click();
        driver.findElement(By.id("load-from-local-storage")).click();
        test("test-value".equals(driver.findElement(By.id("local-storage-value-holder")).getText()));
        driver.reset();
        driver.get(mainPage);
        driver.findElement(By.id("load-from-local-storage")).click();
        test("test-value".equals(driver.findElement(By.id("local-storage-value-holder")).getText()));

        /*
         * Select DOM elements
         */
        test("test-data-attr".equals(driver.findElement(By.id("divtext1")).getAttribute("data-selected")));
        test(driver.findElement(By.id("divtext1")).getAttribute("undefinedattr") == null);
        test(driver.findElement(By.id("divtext1")).getAttribute("innerText").equals("test1"));
        test(driver.findElements(By.name("divs")).size() == 2);
        test(driver.findElements(By.name("divs")).get(1).getAttribute("innerText").equals("test2"));
        test(driver.findElementByClassName("divclass").getAttribute("id").equals("divtext1"));
        test(driver.findElementsByClassName("divclass").get(1).getAttribute("id").equals("divtext2"));
        test(driver.findElementByCssSelector("#divtext1").getAttribute("id").equals("divtext1"));
        test(driver.findElementsByCssSelector("html > *").get(1).getAttribute("id").equals("testbody"));
        test(driver.findElementById("divtext1").getTagName().equals("div"));
        test(driver.findElementsById("divtext1").get(0).getTagName().equals("div"));
        test(driver.findElementByLinkText("anchor").getAttribute("id").equals("anchor1"));
        test(driver.findElementsByLinkText("anchor").get(1).getAttribute("id").equals("anchor2"));
        test(driver.findElementByName("divs").getAttribute("id").equals("divtext1"));
        test(driver.findElementsByName("divs").get(1).getAttribute("id").equals("divtext2"));
        test(driver.findElementByPartialLinkText("anch").getAttribute("id").equals("anchor1"));
        test(driver.findElementsByPartialLinkText("anch").get(1).getAttribute("id").equals("anchor2"));
        test(driver.findElementByTagName("div").getAttribute("id").equals("divtext1"));
        test(driver.findElementsByTagName("div").get(1).getAttribute("id").equals("divtext2"));
        test(driver.findElementByXPath("//*[@id='divtext1']").getAttribute("id").equals("divtext1"));
        test(driver.findElementByTagName("body").findElement(By.xpath("//*[@id='divtext1']")).getAttribute("id")
                .equals("divtext1"));
        test(driver.findElementsByXPath("//html/*").get(1).getAttribute("id").equals("testbody"));
        test(driver.findElement(By.xpath("//a[contains(@href,'1')]")).getAttribute("id").equals("anchor1"));
        test(driver.findElementsByXPath("//a[contains(@href,'!!!')]").isEmpty());
        test(driver.findElementsByClassName("xx").isEmpty());
        test(driver.findElementsByTagName("xx").isEmpty());
        test(driver.findElementsByCssSelector("#xx").isEmpty());
        Throwable error = null;
        try {
            driver.findElementByTagName("xx");
        } catch (NoSuchElementException e) {
            error = e;
        }
        test(error != null);
        error = null;
        try {
            driver.findElementByCssSelector("#xx");
        } catch (NoSuchElementException e) {
            error = e;
        }
        test(error != null);
        error = null;
        try {
            driver.findElementsByXPath("!!!");
        } catch (WebDriverException e) {
            error = e;
        }
        test(error != null);
        error = null;
        try {
            driver.findElement(By.id("divtext1")).findElements(By.cssSelector("???"));
        } catch (WebDriverException e) {
            error = e;
        }
        test(error != null);

        /*
         * WebElement Equals/HashCode
         */
        test(driver.findElements(By.name("divs")).get(0).equals(driver.findElements(By.name("divs")).get(0)));
        test(driver.findElements(By.name("divs")).get(0).hashCode() == driver.findElements(By.name("divs"))
                .get(0).hashCode());

        /*
         * Typing text
         */
        driver.findElement(By.id("text-input")).sendKeys("testing");
        driver.findElement(By.id("text-input")).sendKeys("");
        test(driver.findElement(By.id("text-input")).getAttribute("value").equals("testing"));
        driver.findElement(By.id("text-input")).sendKeys(JBrowserDriver.KEYBOARD_DELETE);
        test(driver.findElement(By.id("text-input")).getAttribute("value") == null);
        driver.findElement(By.id("text-input")).sendKeys("testing");
        test(driver.findElement(By.id("text-input")).getAttribute("value").equals("testing"));
        driver.findElement(By.id("text-input")).clear();
        test(driver.findElement(By.id("text-input")).getAttribute("value") == null);

        /*
         * Clicking on elements
         */
        test(!driver.findElement(By.id("testoption2")).isSelected());
        driver.findElement(By.id("testoption2")).click();
        test(driver.findElement(By.id("testoption2")).isSelected());
        driver.findElement(By.id("testoption1")).click();
        test(driver.findElement(By.id("testoption1")).isSelected());
        driver.findElement(By.id("anchor5")).click();
        test("anchor clicked".equals(driver.findElement(By.id("testspan")).getText()));

        /*
         * Execute javascript
         */
        test(((WebElement) driver.executeScript("return arguments[0];", driver.findElement(By.id("divtext1"))))
                .getAttribute("innerText").equals("test1"));
        test(((WebElement) driver.executeScript("return arguments[0].parentNode;",
                driver.findElement(By.id("divtext1")))).getTagName().equals("body"));
        test(((WebElement) ((JavascriptExecutor) driver.findElement(By.id("divtext1")))
                .executeAsyncScript("arguments[0](this);")).getAttribute("innerText").equals("test1"));
        test((driver.executeAsyncScript("arguments[1](arguments[0].innerText);",
                driver.findElement(By.id("divtext1")))).equals("test1"));
        Map<String, Object> map = (Map<String, Object>) driver.executeScript("return {"
                + "key1:['value1','value2','value3'], " + "key2:5," + "key3:function(){return 'testing';}, "
                + "key4:undefined, key5:null, key6:1/0, key7:0/0, key8:'', key9:[], key10:{}, key11:[{},{}],"
                + "key12:document.getElementById('divtext1'), " + "key13:document.getElementsByName('divs'), "
                + "key14:[document.getElementById('divtext1'),document.getElementsByName('divs'),{subkey1:'subval1'}]};");
        test(map.size() == 14);
        test(((List) map.get("key1")).size() == 3);
        test(((List) map.get("key1")).get(2).equals("value3"));
        test(((List) map.get("key1")).get(2) instanceof String);
        test(map.get("key2").equals(new Long(5)));
        test("function () {return 'testing';}".equals(map.get("key3"))
                || "function (){return 'testing';}".equals(map.get("key3")));
        test(map.get("key4") == null);
        test(map.get("key5") == null);
        test(Double.isInfinite(((Double) map.get("key6")).doubleValue()));
        test(Double.isNaN(((Double) map.get("key7")).doubleValue()));
        test("".equals(map.get("key8")));
        test(map.get("key9") instanceof List);
        test(map.get("key10") instanceof Map);
        test(((List) map.get("key11")).size() == 2);
        test(((Map) ((List) map.get("key11")).get(1)).isEmpty());
        test("test1".equals(((WebElement) map.get("key12")).getAttribute("innerText")));
        test(((List<WebElement>) map.get("key13")).size() == 2);
        test(((List<WebElement>) map.get("key13")).get(1).getAttribute("innerText").equals("test2"));
        test(((List) map.get("key14")).size() == 3);
        test(((List) ((List) map.get("key14")).get(1)).size() == 2);
        test(((WebElement) ((List) ((List) map.get("key14")).get(1)).get(1)).getAttribute("innerText")
                .equals("test2"));
        test(((Map) ((List) map.get("key14")).get(2)).size() == 1);
        test("subval1".equals(((Map) ((List) map.get("key14")).get(2)).get("subkey1")));
        test(((List) driver.executeScript("return [];")).isEmpty());
        test(((Map) driver.executeScript("return {};")).isEmpty());
        error = null;
        try {
            driver.executeScript("invalid.execute()");
        } catch (WebDriverException e) {
            error = e;
        }
        test(error != null);

        /*
         * DOM element properties
         */
        WebElement element = driver.findElement(By.id("divtext1"));
        Point point = element.getLocation();
        test(point.getX() > 0);
        test(point.getY() > 0);
        Dimension dimension = element.getSize();
        test(dimension.width > 0);
        test(dimension.height > 0);
        Rectangle rect = element.getRect();
        test(rect.x == point.getX());
        test(rect.y == point.getY());
        test(rect.width == dimension.getWidth());
        test(rect.height == dimension.getHeight());
        test("Testing\ntext.".equals(driver.findElement(By.id("text-node1")).getText()));
        test("".equals(driver.findElement(By.id("text-node2")).getText()));
        test("".equals(driver.findElement(By.id("text-node3")).getText()));
        List<WebElement> options = driver.findElementsByCssSelector("#testselect option");
        test(options.size() == 2);
        test(options.get(0).isSelected());
        test(!options.get(1).isSelected());
        test(driver.findElementById("checkbox1").isSelected());
        test(!driver.findElementById("checkbox2").isSelected());

        /*
         * Cookie manager
         */
        driver.manage().addCookie(new Cookie("testname", "testvalue"));
        Cookie cookie = driver.manage().getCookieNamed("testname");
        test(cookie.getValue().equals("testvalue"));
        test(InetAddress.getLoopbackAddress().getHostAddress().equals(cookie.getDomain()));

        /*
         * Screenshots
         */
        test(driver.getScreenshotAs(OutputType.BYTES).length > 0);

        /*
         * File Input Type
         */
        driver.findElement(By.id("upload")).sendKeys("some-file");
        test("event-test".equals(driver.findElement(By.id("file-input-onchange")).getText()));
        test(driver.findElement(By.id("upload")).getAttribute("value").endsWith("some-file"));

        /*
         * Javascript alerts
         */
        driver.findElement(By.tagName("button")).click();
        test(driver.switchTo().alert().getText().equals("test-alert"));
        driver.switchTo().alert().dismiss();
        test(driver.switchTo().alert().getText().equals("test-confirm"));
        driver.switchTo().alert().dismiss();
        test(driver.switchTo().alert().getText().equals("test-prompt"));
        driver.switchTo().alert().sendKeys("test-input");
        driver.switchTo().alert().accept();
        test(driver.findElement(By.id("testspan")).getAttribute("innerHTML").equals("test-input"));

        /*
         * Request headers
         */
        List<String> request = HttpServer.previousRequest();
        if (TEST_PORT_HTTP != 443 && TEST_PORT_HTTP != 80) {
            test(request.get(1).endsWith(":" + TEST_PORT_HTTP));
        }
        test(request.size() > 1);
        Set<String> headers = new HashSet<String>();
        for (String line : request) {
            if (line.contains(":")) {
                headers.add(line.split(":")[0].toLowerCase());
            }
        }
        test(request.size() - 2 == headers.size());

        /*
         * HTTP Post
         */
        driver.findElement(By.id("form-submit")).click();
        test(driver.getStatusCode() == 201);
        test("form-field=test-form-value"
                .equals(HttpServer.previousRequest().get(HttpServer.previousRequest().size() - 1)));

        /*
         * Frames
         */
        driver.switchTo().frame(driver.findElementByTagName("iframe"));
        test(driver.findElementById("iframebody") != null);
        driver.switchTo().parentFrame();
        test(driver.findElementById("testbody") != null);
        driver.switchTo().frame(0);
        test(driver.findElementById("iframebody") != null);
        driver.switchTo().defaultContent();
        driver.switchTo().frame("testiframe");
        test(driver.findElementById("iframebody") != null);
        driver.get(mainPage);
        test(driver.getPageSource() != null);
        driver.switchTo().frame(driver.findElementByTagName("iframe"));
        test(driver.findElementById("iframebody") != null);
        driver.switchTo().parentFrame();
        driver.findElement(By.id("anchor3")).click();
        test(driver.getPageSource() != null);
        driver.switchTo().frame(driver.findElementByTagName("iframe"));
        driver.findElement(By.id("iframe-anchor")).click(); //TODO iframe coord offset needed on any other methods?
        driver.pageWait();
        test(HttpServer.previousRequest().get(0).startsWith("GET /iframe.htm?param=fromiframe"));
        driver.get(mainPage);
        driver.switchTo().frame(driver.findElementByTagName("iframe"));
        Actions actions = new Actions(driver);
        actions.moveToElement(driver.findElement(By.id("iframe-anchor")));
        actions.click();
        actions.build().perform();
        driver.pageWait();
        test(HttpServer.previousRequest().get(0).startsWith("GET /iframe.htm?param=fromiframe"));
        driver.get(mainPage);
        driver.switchTo().frame(driver.findElementByTagName("iframe"));
        driver.getMouse().click(((Locatable) driver.findElement(By.id("iframe-anchor"))).getCoordinates());
        driver.getMouse().mouseMove(((Locatable) driver.findElement(By.id("iframe-anchor"))).getCoordinates(),
                5, 5);
        driver.pageWait();
        test(HttpServer.previousRequest().get(0).startsWith("GET /iframe.htm?param=fromiframe"));
        //TODO fingerprinting
        //System.out.println(driver.findElement(By.id("iframe-useragent")).getAttribute("innerHTML"));
        //System.out.println(driver.findElement(By.id("iframe-nested-useragent")).getAttribute("innerHTML"));

        /*
         * Redirects and cookies
         */
        driver.get(mainPage + "/redirect/site1#testfragment");
        test(HttpServer.previousRequestId() != initialRequestId);
        test(driver.getStatusCode() == 200);
        test(driver.getCurrentUrl().endsWith("/redirect/site2#testfragment"));
        cookie = driver.manage().getCookieNamed("JSESSIONID");
        test(cookie.getValue().equals("ABC123"));
        test(InetAddress.getLoopbackAddress().getHostAddress().equals(cookie.getDomain()));

        /*
         * Cookies set by Javascript
         */
        test("jsCookieValue1".equals(driver.manage().getCookieNamed("jsCookieName1").getValue()));
        test("jsCookieValue2".equals(driver.manage().getCookieNamed("jsCookieName2").getValue()));
        test("jsCookieValue3".equals(driver.manage().getCookieNamed("jsCookieName3").getValue()));
        test("jsCookieValue4".equals(driver.manage().getCookieNamed("jsCookieName4").getValue()));

        /*
         * Window size and position
         */
        driver.manage().window().setSize(new Dimension(5000, 5000));
        test(driver.manage().window().getSize().getWidth() == 1024);
        test(driver.manage().window().getSize().getHeight() == 768);
        driver.manage().window().setSize(new Dimension(800, 600));
        test(driver.manage().window().getSize().getWidth() == 800);
        test(driver.manage().window().getSize().getHeight() == 600);
        driver.manage().window().setPosition(new Point(5000, 5000));
        test(driver.manage().window().getPosition().getX() == 224);
        test(driver.manage().window().getPosition().getY() == 168);
        driver.manage().window().setPosition(new Point(20, 50));
        test(driver.manage().window().getPosition().getX() == 20);
        test(driver.manage().window().getPosition().getY() == 50);
        driver.manage().window().maximize();
        test(driver.manage().window().getPosition().getX() == 0);
        test(driver.manage().window().getPosition().getY() == 0);
        test(driver.manage().window().getSize().getWidth() == 1024);
        test(driver.manage().window().getSize().getHeight() == 768);
        driver.manage().window().setSize(new Dimension(800, 600));
        driver.manage().window().setPosition(new Point(20, 50));
        driver.manage().window().fullscreen();
        test(driver.manage().window().getPosition().getX() == 0);
        test(driver.manage().window().getPosition().getY() == 0);
        test(driver.manage().window().getSize().getWidth() == 1024);
        test(driver.manage().window().getSize().getHeight() == 768);
        driver.manage().window().fullscreen();
        test(driver.manage().window().getPosition().getX() == 20);
        test(driver.manage().window().getPosition().getY() == 50);
        test(driver.manage().window().getSize().getWidth() == 800);
        test(driver.manage().window().getSize().getHeight() == 600);
        driver.manage().window().setSize(new Dimension(400, 200));
        driver.manage().window().setPosition(new Point(10, 30));
        test(driver.manage().window().getPosition().getX() == 10);
        test(driver.manage().window().getPosition().getY() == 30);
        test(driver.manage().window().getSize().getWidth() == 400);
        test(driver.manage().window().getSize().getHeight() == 200);
        driver.manage().window().setSize(new Dimension(1024, 768));
        test(driver.manage().window().getPosition().getX() == 0);
        test(driver.manage().window().getPosition().getY() == 0);
        test(driver.manage().window().getSize().getWidth() == 1024);
        test(driver.manage().window().getSize().getHeight() == 768);

        /*
         * Element visibility
         */
        test(driver.findElement(By.id("iframe-anchor")).isDisplayed());
        test(!driver.findElement(By.id("anchor-visibility-hidden")).isDisplayed());
        test(!driver.findElement(By.id("anchor-display-none")).isDisplayed());
        error = null;
        try {
            driver.findElement(By.id("anchor-visibility-hidden")).click();
        } catch (ElementNotVisibleException e) {
            error = e;
        }
        test(error != null);
        error = null;
        try {
            driver.findElement(By.id("anchor-display-none")).click();
        } catch (ElementNotVisibleException e) {
            error = e;
        }
        test(error != null);

        /*
         * Operations on elements that no longer exist
         */
        WebElement body = driver.findElement(By.tagName("body"));
        test(!StringUtils.isEmpty(body.getAttribute("outerHTML")));
        driver.get("about:blank");
        error = null;
        try {
            body.getAttribute("outerHTML");
        } catch (StaleElementReferenceException e) {
            error = e;
        }
        test(error != null);

        /*
         * Timeouts
         */
        driver.manage().timeouts().pageLoadTimeout(1, TimeUnit.MILLISECONDS);
        error = null;
        try {
            driver.get(mainPage + "/wait-forever");
        } catch (TimeoutException e) {
            error = e;
        }
        test(error != null);

    } catch (Throwable t) {
        outputError(testLabel("failed", curTest + 1, t));
    } finally {
        try {
            driver.quit();
        } catch (Throwable t) {
            outputError(toString(t));
        }
        try {
            HttpServer.stop();
        } catch (Throwable t) {
            outputError(toString(t));
        }
        try {
            Runtime.getRuntime().removeShutdownHook(shutdownHook);
            shutdownHook.run();
        } catch (Throwable t) {
        }
    }
}

From source file:com.nat.test.utils.PageNavigator.java

/**
 * Method to perform click using {@link Actions} class. Call if simple click
 * doesn't work for {@link ChromeDriver}
 *
 * @param driver/*from  w w w. j av a 2s. c o  m*/
 *            The driver that will be used for navigation
 * @param element
 *            Element to click
 */
public static void click(WebDriver driver, WebElement element) {
    try {
        element.click();
    } catch (org.openqa.selenium.WebDriverException e) {
        Actions action = new Actions(driver);
        action.moveToElement(element).perform();
        action.click().perform();
    }
}

From source file:com.pentaho.ctools.cde.reference.CCCV2ShowCase.java

License:Apache License

/**
 * ############################### Test Case 1 ###############################
 *
 * Test Case Name://from w w w .  j a v  a  2s .c  om
 *    BarChart
 * Description:
 *    The test case pretends validate the bar chart information.
 * Steps:
 *    1. Check Bar Chart
 */
@Test
public void tc01_ChartContent_DisplayedCorrect() {
    this.log.info("tc1_ChartContent_DisplayedCorrect");

    /*
     * ## Step 1 - Bar Chart
     */
    String barChartTitle = this.elemHelper.WaitForElementPresentGetText(driver, By.id("BarChartTitleRow"));
    assertEquals("Bar Chart", barChartTitle);
    // Check bars
    this.elemHelper.FindElement(driver, By.xpath(
            "//div[@id='BarChartBodyRow']/div/div/*[local-name()='svg' and namespace-uri()='http://www.w3.org/2000/svg']/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][2]/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][1]/*[local-name()='rect'][2]"));
    WebElement barChartRect1 = this.elemHelper.FindElement(driver, By.xpath(
            "//div[@id='BarChartBodyRow']/div/div/*[local-name()='svg' and namespace-uri()='http://www.w3.org/2000/svg']/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][2]/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][1]/*[local-name()='rect'][1]"));
    WebElement barChartRect2 = this.elemHelper.FindElement(driver, By.xpath(
            "//div[@id='BarChartBodyRow']/div/div/*[local-name()='svg' and namespace-uri()='http://www.w3.org/2000/svg']/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][2]/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][1]/*[local-name()='rect'][2]"));
    WebElement barChartRect3 = this.elemHelper.FindElement(driver, By.xpath(
            "//div[@id='BarChartBodyRow']/div/div/*[local-name()='svg' and namespace-uri()='http://www.w3.org/2000/svg']/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][2]/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][1]/*[local-name()='rect'][3]"));
    assertNotNull(barChartRect1);
    assertNotNull(barChartRect2);
    assertNotNull(barChartRect3);
    Double barChartRect1Width = Double.parseDouble(barChartRect1.getAttribute("width"));
    Double barChartRect2Width = Double.parseDouble(barChartRect2.getAttribute("width"));
    Double barChartRect3Width = Double.parseDouble(barChartRect3.getAttribute("width"));
    assertThat("Current width: " + barChartRect1Width, barChartRect1Width, greaterThan(Double.valueOf(192)));
    assertThat("Current width: " + barChartRect2Width, barChartRect2Width, greaterThan(Double.valueOf(250)));
    assertThat("Current width: " + barChartRect3Width, barChartRect3Width, greaterThan(Double.valueOf(100)));
    // Check bars value
    String barChartRectValue1 = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath(
            "//div[@id='BarChartBodyRow']/div/div/*[local-name()='svg' and namespace-uri()='http://www.w3.org/2000/svg']/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][2]/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][2]/*[local-name()='text'][1]"));
    String barChartRectValue2 = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath(
            "//div[@id='BarChartBodyRow']/div/div/*[local-name()='svg' and namespace-uri()='http://www.w3.org/2000/svg']/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][2]/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][2]/*[local-name()='text'][2]"));
    String barChartRectValue3 = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath(
            "//div[@id='BarChartBodyRow']/div/div/*[local-name()='svg' and namespace-uri()='http://www.w3.org/2000/svg']/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][2]/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][2]/*[local-name()='text'][3]"));
    assertEquals("3.68M", barChartRectValue1);
    assertEquals("4.99M", barChartRectValue2);
    assertEquals("1.98M", barChartRectValue3);

    // Mouse hover elements
    Actions acts = new Actions(driver);
    acts.moveToElement(barChartRect2);
    acts.perform();
    String seriesLabel = this.elemHelper.WaitForElementPresentGetText(driver,
            By.xpath("//div[@class='tipsy tipsy-s']/div[2]/div/table/tbody/tr[1]/td[1]/span"));
    acts.perform();
    String seriesValue = this.elemHelper.WaitForElementPresentGetText(driver,
            By.xpath("//div[@class='tipsy tipsy-s']/div[2]/div/table/tbody/tr[1]/td[3]/span"));
    acts.perform();
    String timeLabel = this.elemHelper.WaitForElementPresentGetText(driver,
            By.xpath("//div[@class='tipsy tipsy-s']/div[2]/div/table/tbody/tr[2]/td[1]/span"));
    acts.perform();
    String timeValue = this.elemHelper.WaitForElementPresentGetText(driver,
            By.xpath("//div[@class='tipsy tipsy-s']/div[2]/div/table/tbody/tr[2]/td[3]/span"));
    acts.perform();
    String valueLabel = this.elemHelper.WaitForElementPresentGetText(driver,
            By.xpath("//div[@class='tipsy tipsy-s']/div[2]/div/table/tbody/tr[3]/td[1]/span"));
    acts.perform();
    String valueValue = this.elemHelper.WaitForElementPresentGetText(driver,
            By.xpath("//div[@class='tipsy tipsy-s']/div[2]/div/table/tbody/tr[3]/td[3]/span"));
    assertEquals("Series", seriesLabel);
    assertEquals("Sales", seriesValue);
    assertEquals("Time", timeLabel);
    assertEquals("2004", timeValue);
    assertEquals("Value", valueLabel);
    assertEquals("4,987,739.84", valueValue);

    //To move the focus to another element, in order to remove the tooltip
    Actions acts2 = new Actions(driver);
    acts2.moveToElement(this.elemHelper.FindElement(driver, By.id("BarChartTitleRow")));
    acts2.click();
    acts2.perform();
}

From source file:com.pentaho.ctools.cde.reference.CCCV2ShowCase.java

License:Apache License

/**
 * ############################### Test Case 2 ###############################
 *
 * Test Case Name://from   ww  w . ja  v  a  2 s .c  o  m
 *    LineChart
 * Description:
 *    The test case pretends validate the line chart information.
 * Steps:
 *    1. Check Line Chart
 */
@Test
public void tc02_ChartContent_DisplayedCorrect() {
    this.log.info("tc02_ChartContent_DisplayedCorrect");

    /*
     * ## Step 2 - Line Chart
     */
    String lineChartTitle = this.elemHelper.WaitForElementPresentGetText(driver, By.id("LineChartTitleRow"));
    assertEquals("Line Chart", lineChartTitle);
    // Check lines
    WebElement lineChartCircle1 = this.elemHelper.FindElement(driver, By.xpath(
            "//div[@id='LineChartBodyRow']/div/div/*[local-name()='svg' and namespace-uri()='http://www.w3.org/2000/svg']/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][3]/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][3]/*[local-name()='circle'][1]"));
    WebElement lineChartCircle2 = this.elemHelper.FindElement(driver, By.xpath(
            "//div[@id='LineChartBodyRow']/div/div/*[local-name()='svg' and namespace-uri()='http://www.w3.org/2000/svg']/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][3]/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][3]/*[local-name()='circle'][7]"));
    WebElement lineChartCircle3 = this.elemHelper.FindElement(driver, By.xpath(
            "//div[@id='LineChartBodyRow']/div/div/*[local-name()='svg' and namespace-uri()='http://www.w3.org/2000/svg']/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][3]/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][3]/*[local-name()='circle'][11]"));
    Double lineChartCircle1Cy = Double.parseDouble(lineChartCircle1.getAttribute("cy"));
    Double lineChartCircle2Cy = Double.parseDouble(lineChartCircle2.getAttribute("cy"));
    Double lineChartCircle3Cy = Double.parseDouble(lineChartCircle3.getAttribute("cy"));
    assertThat("Current cy: " + lineChartCircle1Cy, lineChartCircle1Cy, greaterThan(Double.valueOf(120)));
    assertThat("Current cy: " + lineChartCircle2Cy, lineChartCircle2Cy, greaterThan(Double.valueOf(136)));
    assertThat("Current cy: " + lineChartCircle3Cy, lineChartCircle3Cy, greaterThan(Double.valueOf(24)));

    // Mouse hover elements
    WebElement lineChartCircle4 = this.elemHelper.FindElement(driver, By.xpath(
            "//div[@id='LineChartBodyRow']/div/div/*[local-name()='svg' and namespace-uri()='http://www.w3.org/2000/svg']/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][3]/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][3]/*[local-name()='circle'][2]"));
    Actions acts = new Actions(driver);
    acts.moveToElement(lineChartCircle4);
    acts.perform();
    String measuresLabel = this.elemHelper.WaitForElementPresentGetText(driver,
            By.xpath("//div[@class='tipsy tipsy-s']/div[2]/div/table/tbody/tr[1]/td[1]/span"));
    acts.perform();
    String measuresValue = this.elemHelper.WaitForElementPresentGetText(driver,
            By.xpath("//div[@class='tipsy tipsy-s']/div[2]/div/table/tbody/tr[1]/td[3]/span"));
    acts.perform();
    String categoryLabel = this.elemHelper.WaitForElementPresentGetText(driver,
            By.xpath("//div[@class='tipsy tipsy-s']/div[2]/div/table/tbody/tr[2]/td[1]/span"));
    acts.perform();
    String categoryValue = this.elemHelper.WaitForElementPresentGetText(driver,
            By.xpath("//div[@class='tipsy tipsy-s']/div[2]/div/table/tbody/tr[2]/td[3]/span"));
    acts.perform();
    String valueLineValue = this.elemHelper.WaitForElementPresentGetText(driver,
            By.xpath("//div[@class='tipsy tipsy-s']/div[2]/div/table/tbody/tr[4]/td[3]/span"));
    assertEquals("Measures", measuresLabel);
    assertEquals("Quantity", measuresValue);
    assertEquals("Category", categoryLabel);
    assertEquals("Feb", categoryValue);
    assertEquals("7,959", valueLineValue);

    //To move the focus to another element, in order to remove the tooltip
    Actions acts2 = new Actions(driver);
    acts2.moveToElement(this.elemHelper.FindElement(driver, By.id("LineChartTitleRow")));
    acts2.click();
    acts2.perform();
}

From source file:com.pentaho.ctools.cde.require.CCCV2ShowCase.java

License:Apache License

/**
 * ############################### Test Case 2 ###############################
 *
 * Test Case Name:// w  ww . j av  a  2s .co  m
 *    LineChart
 * Description:
 *    The test case pretends validate the line chart information.
 * Steps:
 *    1. Check Line Chart
 */
@Test
public void tc02_ChartContent_DisplayedCorrect() {
    this.log.info("tc2_ChartContent_DisplayedCorrect");

    /*
     * ## Step 1 - Line Chart
     */
    String lineChartTitle = this.elemHelper.WaitForElementPresentGetText(driver, By.id("LineChartTitleRow"));
    assertEquals("Line Chart", lineChartTitle);
    // Check lines
    WebElement lineChartCircle1 = this.elemHelper.FindElement(driver, By.xpath(
            "//div[@id='LineChartBodyRow']/div/div/*[local-name()='svg' and namespace-uri()='http://www.w3.org/2000/svg']/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][3]/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][3]/*[local-name()='circle'][1]"));
    WebElement lineChartCircle2 = this.elemHelper.FindElement(driver, By.xpath(
            "//div[@id='LineChartBodyRow']/div/div/*[local-name()='svg' and namespace-uri()='http://www.w3.org/2000/svg']/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][3]/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][3]/*[local-name()='circle'][7]"));
    WebElement lineChartCircle3 = this.elemHelper.FindElement(driver, By.xpath(
            "//div[@id='LineChartBodyRow']/div/div/*[local-name()='svg' and namespace-uri()='http://www.w3.org/2000/svg']/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][3]/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][3]/*[local-name()='circle'][11]"));
    Double lineChartCircle1Cy = Double.parseDouble(lineChartCircle1.getAttribute("cy"));
    Double lineChartCircle2Cy = Double.parseDouble(lineChartCircle2.getAttribute("cy"));
    Double lineChartCircle3Cy = Double.parseDouble(lineChartCircle3.getAttribute("cy"));
    assertThat("Current cy: " + lineChartCircle1Cy, lineChartCircle1Cy, greaterThan(Double.valueOf(120)));
    assertThat("Current cy: " + lineChartCircle2Cy, lineChartCircle2Cy, greaterThan(Double.valueOf(136)));
    assertThat("Current cy: " + lineChartCircle3Cy, lineChartCircle3Cy, greaterThan(Double.valueOf(24)));

    // Mouse hover elements
    WebElement lineChartCircle4 = this.elemHelper.FindElement(driver, By.xpath(
            "//div[@id='LineChartBodyRow']/div/div/*[local-name()='svg' and namespace-uri()='http://www.w3.org/2000/svg']/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][3]/*[local-name()='g']/*[local-name()='g']/*[local-name()='g'][3]/*[local-name()='circle'][2]"));
    Actions acts = new Actions(driver);
    acts.moveToElement(lineChartCircle4);
    acts.perform();
    String measuresLabel = this.elemHelper.WaitForElementPresentGetText(driver,
            By.xpath("//div[@class='tipsy tipsy-s']/div[2]/div/table/tbody/tr[1]/td[1]/span"));
    acts.perform();
    String measuresValue = this.elemHelper.WaitForElementPresentGetText(driver,
            By.xpath("//div[@class='tipsy tipsy-s']/div[2]/div/table/tbody/tr[1]/td[3]/span"));
    acts.perform();
    String categoryLabel = this.elemHelper.WaitForElementPresentGetText(driver,
            By.xpath("//div[@class='tipsy tipsy-s']/div[2]/div/table/tbody/tr[2]/td[1]/span"));
    acts.perform();
    String categoryValue = this.elemHelper.WaitForElementPresentGetText(driver,
            By.xpath("//div[@class='tipsy tipsy-s']/div[2]/div/table/tbody/tr[2]/td[3]/span"));
    acts.perform();
    String valueLineValue = this.elemHelper.WaitForElementPresentGetText(driver,
            By.xpath("//div[@class='tipsy tipsy-s']/div[2]/div/table/tbody/tr[4]/td[3]/span"));
    assertEquals("Measures", measuresLabel);
    assertEquals("Quantity", measuresValue);
    assertEquals("Category", categoryLabel);
    assertEquals("Feb", categoryValue);
    assertEquals("7,959", valueLineValue);

    //To move the focus to another element, in order to remove the tooltip
    Actions acts2 = new Actions(driver);
    acts2.moveToElement(this.elemHelper.FindElement(driver, By.id("LineChartTitleRow")));
    acts2.click();
    acts2.perform();
}