最近在写自动化测试,在网上搜了很多拖动,发现都是拖动完之后不触发拖动完成事件,下面的代码是针对上面的这种滑块解锁登录的。
//输入用户名
driver.findElement(By.name("username")).sendKeys("11111111111");
//输入密码
driver.findElement(By.name("password")).sendKeys("123456");
//强制等待3秒
Thread.sleep(1000);
//手动拖动滑块
Actions action = new Actions(driver);
WebElement moveButton = driver.findElement(By.className("inner"));
//移到滑块元素并悬停
action.moveToElement(moveButton).clickAndHold(moveButton);
//最关键的一步拖拽代码,不要用action.moveByOffset(306, 0).perform(),这个不会触发鼠标抬起的完成事件,用下面的
action.dragAndDropBy(moveButton,305, 0).perform();
action.release();
//强制等待3秒
Thread.sleep(3000);
driver.findElement(By.id("loginBtn")).click();