Actions类
背景:
平时我们在做自动化过程中可能需要模拟鼠标、键盘等的一些行为,例如鼠标单击,双击,右键,而且很多web 应用可能存在快捷组合键等等。那么可以用WebDriver中提供了Actions类来处理这类需求,更复杂的键盘鼠标处理我们可以通过Java提供的Robot类解决。
1、在元素上鼠标右击和双击
//右击和双击
public void rightClickTest(){
driver.get("http://www.baidu.com");
WebElement rightclick = driver.findElement(By.id("su"));
//右击操作用到Action类
Actions actions = new Actions(driver);
actions.contextClick(rightclick).perform(); //右击某个元素,如果不传的话默认左上角
actions.doubleClick().build().perform(); //双击,如果不写build也是可以的
}
2、鼠标移动到某个元素上
3、把元素拖动到(x,y)
4、把元素拖动到另一个元素上
public void dropTest1() {
//鼠标拖拽操作
driver.get("file:///G:/java+selenium/dragAndDrop.html");
WebElement element1 = driver.findElement(By.id("drag"));
WebElement element2 = driver.findElement(By.linkText("banban"));
Actions actions=new Actions(driver);
//按住元素1,然后拖到到元素2,再释放元素1,执行
actions.clickAndHold(element1).moveToElement(element2).release(element1).perform();
}
5、下拉框多选
public void moreSelectTest() {
//下拉框多选
driver.get("file:///G:/java+selenium/index.html");
WebElement element = driver.findElement(By.id("selectWithMultipleEqualsMultiple"));
List<WebElement> list=element.findElements(By.tagName("option"));
Actions actions=new Actions(driver);
//按住shift键,点击第二个和第四个来执行
actions.keyDown(Keys.SHIFT).click(list.get(0)).click(list.get(3)).keyUp(Keys.SHIFT).perform();
//按住control选第二个和第四个
actions.keyDown(Keys.CONTROL).click(list.get(1)).click(list.get(3)).keyUp(Keys.CONTROL).perform();
}