WebDriver使用Actions对象模拟鼠标键盘操作
模拟双击操作
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(); } } }