WebDriver使用Actions对象模拟鼠标键盘操作

jopen 11年前

模拟双击操作

1. 模拟双击一个div,验证点击之前的字体为14号

2. 点击后字体为20号

Actions builder = new Actions(driver); //new 出Actions对象

builder.doubleClick(message).build().perform(); //对象后可以跟一系列的操作,要通过跟着build().perform()才能执行

    package com.example.tests;        import static org.junit.Assert.*;        import org.junit.*;        import org.openqa.selenium.*;        import org.openqa.selenium.firefox.FirefoxDriver;        import org.openqa.selenium.interactions.Actions;        public class Selenium2 {            WebDriver driver = new FirefoxDriver();            @Test            public void tableTest() {                driver.get("D:\\demo\\DoubleClickDemo.html");                WebElement message = driver.findElement(By.id("message"));                //  验证初始字体为14px                assertEquals("14px", message.getCssValue("font-size"));                Actions builder = new Actions(driver);                builder.doubleClick(message).build().perform();                //  验证点击后字体变为20px                assertEquals("20px", message.getCssValue("font-size"));                driver.close();            }        }  

模拟拖拽操作

使用dragAndDrop(source,targe)方法

    package com.example.tests;        import static org.junit.Assert.*;        import org.junit.*;        import org.openqa.selenium.*;        import org.openqa.selenium.ie.InternetExplorerDriver;        import org.openqa.selenium.interactions.Actions;        public class Selenium2 {            @Test            public void testDragDrop() {                WebDriver driver = new InternetExplorerDriver();                driver.get("D:\\demo\\DragAndDrop.html");                WebElement source = driver.findElement(By.id("draggable"));                WebElement target = driver.findElement(By.id("droppable"));                Actions builder = new Actions(driver);                builder.dragAndDrop(source, target).perform();                try {                    assertEquals("Dropped!", target.getText());                } catch (Error e) {                    e.printStackTrace();                }finally{                    driver.close();                }               }        }