4.3 Webdriver Actions

Various webpage actions like mouseHover, sliding element etc. can be performed using Webdriver.

Mouse Hover first approach

@Test
    public void webDriverActions() {
        driver.get("http://someURl.com");
        // Get element to be hovered upon
        WebElement hoverElement = driver.findElement(By.xpath("//div[@class='hoverElement']"));

        // Perform hover action
        Actions builder = new Actions(driver);
        builder.moveToElement(hoverElement).build().perform();

        // Click the element that is now visible after hover
        driver.findElement(By.xpath("//div[@class='visibleElementOnHover']")).click();
    }

Mouse Hover second approach

@Test
    public void webDriverMouseActions() {
        driver.get("http://someURl.com");
        // Get element to be hovered upon
        WebElement hoverElement = driver.findElement(By.xpath("//div[@class='hoverElement']"));

        // Perform hover action using Mouse object
        Locatable hoverItem = (Locatable) hoverElement;
        Mouse mouse = ((HasInputDevices) driver).getMouse();
        mouse.mouseMove(hoverItem.getCoordinates());

        // Click the element that is now visible after hover
        driver.findElement(By.xpath("//div[@class='visibleElementOnHover']"))
                .click();
    }

Move Slider to an offset

@Test
    public void dragSlider() {
        driver.get("http://someURl.com");
        // Get sliding element
        WebElement sliderElement = driver.findElement(By.id("sliderId"));
        // drag the slider
        Actions builder = new Actions(driver);
        builder = new Actions(driver);
        // Move 120px on x axis
        Action dragAndDrop = builder.clickAndHold(sliderElement).moveByOffset(120, 0).release().build();
        dragAndDrop.perform();
    }

Last updated

Was this helpful?