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();

 

posted @   豆芽花花儿酱  阅读(468)  评论(0编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤
点击右上角即可分享
微信分享提示