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();
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题: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模型构建本地知识库+联网搜索详细步骤