selenium+Java模拟鼠标操作
在selenium中,针对鼠标的一些操作都被封装在Actions类中,在需要使用的时候,导入Actions类即可调用相关的方法,使用actions类方法时,每个方法后面需要跟上perform()方法才能实现。常用操作有:
doubleClick() 模拟鼠标双击;
moveToElement() 移动鼠标到某元素的中间位置;
contextClick() 模拟鼠标右击动作;
dragAndDrop(source,target) 将元素拖拽到目标位置;
actions.clickAndHold()按住某个元素;
selenium+Java示例代码如下:
public static void main(String[] args) throws Exception{
// 打开浏览器访问目标网页
System.setProperty("webdriver.chrome.driver", "webdrivers/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.eteams.cn");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
// 登录
driver.findElement(By.id("username")).sendKeys("1234YH@163.com");
driver.findElement(By.id("password")).sendKeys("123456");
driver.findElement(By.xpath("//button[text()='登 录']")).click();
driver.findElement(By.cssSelector("a[type='button']")).click();
// 实例化actions类。调用doubleClick方法,双击目标元素
WebElement day = driver.findElement(By.id("20210817"));// 将需要双击的WebElement对象定义为day
Actions actions = new Actions(driver);// 实例化Actions类对象:actions,并将driver传给actions
actions.doubleClick(day).perform();
// 调用moveToElement方法,把鼠标移动到目标元素上
WebElement Qui = driver.findElement(By.id("QuickMenu"));
actions.moveToElement(Qui).perform();
// 调用contextClick方法,执行右击
WebElement eteams = driver.findElement(By.id("eteams"));
actions.contextClick(eteams).perform();
// 定位能拖拽的元素
WebElement move = driver.findElement(By.id("dragga"));
// 定位拖拽目标位置元素
WebElement target = driver.findElement(By.id("droppa"));
// 调用dragAndDrop方法,执行拖拽
actions.dragAndDrop(move, target).build().perform();
// 调用moveToElement方法,将鼠标移动到目标元素,并且单击
WebElement logouts = driver.findElement(By.id("logout"));
actions.moveToElement(logouts).click().perform();
}