org.openqa.selenium.interactions.Actions类,主要定义了一些模拟用户的鼠标mouse,键盘keyboard操作。对于这些操作,使用 perform()方法进行执行。可以完成单一的操作,也可以完成几个操作的组合。
模拟鼠标操作
// 新建一个action
Actions action = new Actions(driver);
// 鼠标左键单击
action.click(WebElement).perform();
// 鼠标左键双击
action.doubleClick(WebElement).perform();
// 鼠标左键按下
action.clickAndHold(WebElement).perform();
// 鼠标移动到元素
action.moveToElement(WebElement).perform();
// 元素右键点击
action.contextClick(WebElement).perform();
// 将目标元素拖拽到指定的元素上
action.dragAndDrop(webElement1,webElement2);
action.dragAndDrop(webElement, xOffset, yOffset);
模拟键盘操作
Actions action = new Actions(driver);
action.keyDown(Keys.CONTROL);//按下control键
action.keyUp(Keys.CONTROL);//松开control键
action.keyDown(Keys.CONTROL).keyDown(Keys.ALT).keyDown("A").keyUp(Keys.CONTROL).keyUp(Keys.ALT).keyUp("A").perform();
action.sendKeys(Keys.CONTROL+"a").perform();
action.sendKeys(Keys.CONTROL, Keys.ALT, "A").perform();
driver.findElement(By.id("kw")).sendKeys(Keys.CONTROL);
driver.findElement(By.id("kw")).sendKeys(Keys.CONTROL,"A”);
sendKeys(Keys.BACK_SPACE); //删除键--Backspace
sendKeys(Keys.SPACE); //空格键 Space
sendKeys(Keys.TAB); //制表键 Tab
sendKeys(Keys.ESCAPE); //回退键 ESC
sendKeys(Keys.ENTER); //回车键 Enter
sendKeys(Keys.F5); //键盘F5(可模拟F1-F12)
sendKeys(Keys.CONTROL,"a"); //全选 Ctrl+A
sendKeys(Keys.CONTROL,"c"); //复制 Ctrl+C
sendKeys(Keys.CONTROL,"x"); //剪切 Ctrl+X
sendKeys(Keys.CONTROL,"v"); //粘贴 Ctrl+V