1:鼠标相关操作
1.1:鼠标左击
public class testDemos {
private FirefoxDriver driver;
@Test
public void testDemo() throws Exception{
driver = new FirefoxDriver();
driver.get("https://www.imooc.com/");
driver.manage().window().maximize();
WebElement element = driver.findElement(By.id("js-signin-btn"));
//创建鼠标事件的action对象
Actions actions = new Actions(driver);
//click(WebElement element)为鼠标左击事件
actions.click(element).perform();
}
}
1.2:鼠标右击
public class testDemos {
private FirefoxDriver driver;
@Test
public void testDemo() throws Exception{
driver = new FirefoxDriver();
driver.get("https://www.imooc.com/");
driver.manage().window().maximize();
WebElement element = driver.findElement(By.id("js-signin-btn"));
//创建鼠标事件的action对象
Actions actions = new Actions(driver);
//contextClick(WebElement element)为鼠标右击事件
actions.contextClick(element).perform();
}
}
1.3:鼠标双击事件
public class testDemos {
private FirefoxDriver driver;
@Test
public void testDemo() throws Exception{
driver = new FirefoxDriver();
driver.get("https://www.imooc.com/");
driver.manage().window().maximize();
WebElement element = driver.findElement(By.id("js-signin-btn"));
//创建鼠标事件的action对象
Actions actions = new Actions(driver);
//doubleClick(WebElement element)为鼠标双击事件
actions.doubleClick(element).perform();
}
}
1.4:鼠标悬停事件
public class testDemos {
private FirefoxDriver driver;
@Test
public void testDemo() throws Exception{
driver = new FirefoxDriver();
driver.get("https://www.imooc.com/");
driver.manage().window().maximize();
WebElement element = driver.findElement(By.xpath(".//*[@id='main']/div[2]/div/div[9]/div[1]/a/span"));
//创建鼠标事件的action对象
Actions actions = new Actions(driver);
//moveToElement(WebElement element)为鼠标悬停事件
actions.moveToElement(element).perform();
//悬停后寻找linkText为以太坊的元素进行点击操作
driver.findElement(By.linkText("以太坊")).click();
}
}
2:弹窗的操作
2.1:确认取消对话框的操作
2.1.1:模拟键盘的操作确认或者取消对话框
public class AddGroup {
//此处driver必须传递上一次的driver 顺序执行
public void addGroup(WebDriver driver) throws Exception{
Thread.sleep(3000);
//切放到第一个iframe
driver.switchTo().frame("iframe_page");
Thread.sleep(3000);
//切换到第二个iframe
driver.switchTo().frame("iframe_vehicle");
//定位添加车组 进行选中
driver.findElement(By.xpath(".//*[@id='div_tab']/div[1]/div[3]/ul/li[1]/a/span[1]")).click();
driver.findElement(By.xpath(".//*[@id='form_group']/div[1]/div[1]/span/input[1]")).sendKeys("TEST");
Thread.sleep(3000);
driver.findElement(By.xpath(".//*[@id='div_tab']/div[2]/div[1]/div/div[2]/div[2]/div/a/span/span[1]")).click();
Thread.sleep(3000);
//对于按键盘的某个键就可以进行确定 或者取消的对话框可以采取下列操作
Robot robot = new Robot();//在基本屏幕坐标系中构造一个 Robot 对象
robot.keyPress(KeyEvent.VK_ENTER);//按下给定的键
// robot.keyPress(KeyEvent.VK_ESCAPE);//按下给定的键
robot.keyRelease(KeyEvent.VK_ENTER);//释放该键
// robot.keyRelease(KeyEvent.VK_ESCAPE);//释放该键
}
}
2.1.2:Alert操作弹窗
public class AddGroup {
//此处driver必须传递上一次的driver 顺序执行
public void addGroup(WebDriver driver) throws Exception{
Thread.sleep(3000);
//切放到第一个iframe
driver.switchTo().frame("iframe_page");
Thread.sleep(3000);
//切换到第二个iframe
driver.switchTo().frame("iframe_vehicle");
//定位添加车组 进行选中
driver.findElement(By.xpath(".//*[@id='div_tab']/div[1]/div[3]/ul/li[1]/a/span[1]")).click();
driver.findElement(By.xpath(".//*[@id='form_group']/div[1]/div[1]/span/input[1]")).sendKeys("TEST");
Thread.sleep(3000);
driver.findElement(By.xpath(".//*[@id='div_tab']/div[2]/div[1]/div/div[2]/div[2]/div/a/span/span[1]")).click();
Thread.sleep(3000);
//相当于点击确定
driver.switchTo().alert().accept();
//相当于点击取消
// driver.switchTo().alert().dismiss();
//在对话框中输入内容
// driver.switchTo().alert().sendKeys("1234");
}
}
3:窗口的切换
public class Test1 {
private static WebDriver driver;
public static void main(String[] args) throws Exception {
File pathToFirefoxBinary = new File("D:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
FirefoxBinary firefoxbin = new FirefoxBinary(pathToFirefoxBinary);
driver = new FirefoxDriver(firefoxbin, null);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.get("https://www.jd.com/");
Thread.sleep(1000);
//点击京东左侧菜单中的 手机
WebElement phone_link = driver.findElement(By.linkText("手机"));
phone_link.click();
Thread.sleep(1000);
// 获取当前页面句柄
String handle = driver.getWindowHandle();
//获取所有页面的句柄的集合
Set<String> windowHandles = driver.getWindowHandles();
// 获取所有页面的句柄,并循环判断不是当前的句柄
for (String handles : windowHandles) {
if (handles.equals(handle)){
continue;
}
//切换到另外一个页面
driver.switchTo().window(handles);
}
WebElement xiaomi_link = driver.findElement(By.linkText("小米"));
xiaomi_link.click();
Thread.sleep(1000);
}
}