selenium学习笔记——高级操作

这篇主要介绍一下页面的高级操作:页面跳转、单选下拉框选择、frame切换、鼠标悬停、非网页弹窗

一、页面跳转/窗口跳转

  两种方式:不关闭原窗口和关闭原窗口,建议采用第二种关闭原窗口这种方式

    不关闭原窗口:   

 1 //获取当前窗口的句柄
 2 String orighandle = driver.getWindowHandle();
 3 //遍历所有句柄
 4 for(String handle : driver.getWindowHandles()){
 5      // 如果不是原窗口的句柄,那么就把句柄移动到新窗口
 6      if(!handle.equals(orighandle)){
 7          driver.switchTo().window(handle);
 8          break;
 9      }      
10 }

      关闭原窗口:

 1 // 获取原窗口句柄
 2 String orighandle = driver.getWindowHandle();
 3 //增强for循环,遍历所有句柄
 4 for (String handle : driver.getWindowHandles()) {
 5       if (handle.equals(orighandle)) {
 6      //如果是原窗口,那就关闭
 7      driver.close();
 8     } 
 9       else {
10      //如果是新窗口,就移动鼠标到新窗口
11       driver.switchTo().window(handle);
12     }
13 }

 二、鼠标悬停:鼠标放上去,下级菜单显示,又发生点击事件

1 //创建对象
2 Actions actions = new Actions(driver);
3 //鼠标移动至元素上
4 actions.moveToElement(driver.findElement(By.linkText("数码产品").perform();
5 //按下某个元素链接,不释放鼠标
6 actions.clickAndHold(driver.findElement(By.linkText("相机").perform();
7 //释放鼠标左键,让页面刷新
8 actions.release(driver.findElement(By.linkText("相机").perform();

三、非网页弹窗:Alert弹窗

1 //点击弹窗的确定按钮
2 driver.switchTo().alert().accept();
3 //点击弹窗的取消按钮
4 driver.switchTo().alert().dismiss();
5 //弹窗中的输入框输入文本
6 driver.switchTo().alert().sendKeys("文本内容");

四、frame切换

注意:frame之间相互切换时,要从一个frame切换到主界面后,再切换到另一个frame

1 //切换到frame
2 driver.switchTo().frame("frame的id");
3 //切回到默认主界面
4 driver.switchTo().defaultContent();
原文地址:https://www.cnblogs.com/starstarstar/p/7588219.html