当前位置: 首页 > news >正文

Java的Selenium的特殊元素操作与定位之window切换

当你要操作另外一个窗口页面的元素时,一定要注意先切换窗口

切换方式:传入要操作窗口的name或者句柄handle

driver.switchTo.window(nameOrHandle);

如何获取到窗口的句柄

  • driver.getWindowHandle();//获取当前操作窗口的句柄
  • driver.getWindowHandles();//获取测试时打开的所有窗口句柄

没有切换句柄的代码

chromeDriver.get("D:\\svn lemon\\数学ppt\\yy\\录制视频\\Web自动化引流视频\\练习素村\\window\\\a.html");
chromeDriver.findElement(By.id("aa")).sendKeys("这是第一个窗口");
System.out.println("跳转前的窗口句柄:" + chromeDriver.getWindowHandle());
Thread.sleep(2000);
// 切换到B窗口
chromeDriver.findElement(By.id("bb")).click();
Thread.sleep(2000);
System.out.println("跳转后的窗口句柄:" + chromeDriver.getWindowHandle());
// 此时,尽管页面已经跳转到了B窗口,但是句柄还是在A窗口中,所以你操作的还是A窗口

 切换句柄的代码

// 打开A窗口的URL
chromeDriver.get("http://yourwebsite.com/la.html");

// 执行一些操作,比如输入文本
chromeDriver.findElement(By.id("aa")).sendKeys("这是第一个窗口");

// 打印当前窗口句柄
System.out.println("跳转前的窗口句柄:" + chromeDriver.getWindowHandle());

// 等待页面加载
Thread.sleep(2000);

// 点击链接或按钮,打开B窗口
chromeDriver.findElement(By.id("bb")).click();

// 等待B窗口加载
Thread.sleep(2000);

// 获取所有窗口的句柄
Set<String> handles = chromeDriver.getWindowHandles();

// 遍历所有窗口句柄,找到B窗口的句柄
for (String handle : handles) {
    // 切换到当前遍历到的窗口句柄对应的窗口
    chromeDriver.switchTo().window(handle);
    // 检查当前窗口的URL是否为B窗口的URL
    if (chromeDriver.getCurrentUrl().contains("b.html")) {
        // 如果URL包含"b.html",说明找到了B窗口,跳出循环
        break;
    }
}

// 现在chromeDriver已经切换到了B窗口,可以对B窗口的元素进行操作
chromeDriver.findElement(By.id("bb")).sendKeys("这是第二个窗口");
http://www.dtcms.com/a/113160.html

相关文章:

  • 推荐系统的注意力进化:从 Self-Attention 到 Target-Attention
  • BT-Basic函数之首字母T
  • 《打破SQL与AI框架对接壁垒,解锁融合新路径》
  • 文章记单词 | 第25篇(六级)
  • 深度学习之微调
  • 练习题:123
  • 量子纠错码实战:从Shor码到表面码
  • 【代码模板】C语言如何修改文件权限?读写执行权限对应值是多少?(chmod(“./a.out“, 0741);bit 2 1 0表示 读 写 执行)
  • mysql-getshell的几种方法
  • 【全球首发】DeepSeek谷歌版1.1.5 - 免费GPT-4级别AI工具
  • 5.数据手册解读——共模电感
  • Keepalive+LVS+Nginx+NFS高可用项目
  • C++ 排序(1)
  • Kotlin 枚举类
  • 网络安全之前端学习(css终章)
  • 31天Python入门——第25天:文件和目录操作
  • 单片机实现多线程的方法汇总
  • 为招聘推荐系统进行相应修改的 Python 实现方案(含协同过滤推荐算法)
  • 【Vue】 核心特性实战解析:computed、watch、条件渲染与列表渲染
  • deepseek回答ollama 下载模型的命令
  • 04.游戏开发-unity编辑器详细-工具栏、菜单栏、工作识图详解
  • 某碰瓷国赛美赛,号称第三赛事的数模竞赛
  • SQLmap工具使用
  • 详解 MySQL 三层 B+ 树能存多少数据的计算方法
  • 中国移动启动数字乡村“五新升级”:年底前,行政村5G覆盖达95%
  • 【leetcode】记录与查找:哈希表的题型分析
  • MySQL篇(六)MySQL 分库分表:应对数据增长挑战的有效策略
  • 群体智能避障革命:RVO算法在Unity中的深度实践与优化
  • 小刚说C语言刷题——第15讲 多分支结构
  • 紫檀博物馆一游与软件开发