Cyan Blog Cyan Blog
首页
  • Java (opens new window)
  • JUC (opens new window)
  • JVM (opens new window)
  • Redis

    • Redis安装 (opens new window)
    • Redis基础 (opens new window)
    • Redis实战 (opens new window)
    • Redis集群安装 (opens new window)
    • Redis分布式缓存 (opens new window)
    • Redis多级缓存 (opens new window)
    • Redis原理 (opens new window)
  • 管理工具

    • Maven (opens new window)
    • Git (opens new window)
  • SSM

    • Spring (opens new window)
    • SpringBoot (opens new window)
    • Mybatis (opens new window)
    • MybatisPlus (opens new window)
  • 微服务

    • Docker (opens new window)
    • RabbitMQ (opens new window)
    • SpringCloud (opens new window)
    • Dubbo (opens new window)
    • MongoDB (opens new window)
    • Zookeeper (opens new window)
  • Java面试题 (opens new window)
  • JUC面试题 (opens new window)
  • JVM面试题 (opens new window)
  • Linux面试题 (opens new window)
  • SQL面试题 (opens new window)
  • Maven面试题 (opens new window)
  • Redis面试题 (opens new window)
  • SSM面试题 (opens new window)
  • SpringCloud面试题 (opens new window)
  • Linux (opens new window)
  • C++ (opens new window)
  • 数据库

    • MySQL (opens new window)
    • NoSQL (opens new window)
  • 软件测试

    • 软件测试 (opens new window)
  • 加密解密 (opens new window)
  • bilibili字幕提取 (opens new window)
  • 道理 (opens new window)
  • 关于博主

    • Github (opens new window)
    • CSDN (opens new window)
  • 关于本站

    • 如何搭建博客网站 (opens new window)
首页
  • Java (opens new window)
  • JUC (opens new window)
  • JVM (opens new window)
  • Redis

    • Redis安装 (opens new window)
    • Redis基础 (opens new window)
    • Redis实战 (opens new window)
    • Redis集群安装 (opens new window)
    • Redis分布式缓存 (opens new window)
    • Redis多级缓存 (opens new window)
    • Redis原理 (opens new window)
  • 管理工具

    • Maven (opens new window)
    • Git (opens new window)
  • SSM

    • Spring (opens new window)
    • SpringBoot (opens new window)
    • Mybatis (opens new window)
    • MybatisPlus (opens new window)
  • 微服务

    • Docker (opens new window)
    • RabbitMQ (opens new window)
    • SpringCloud (opens new window)
    • Dubbo (opens new window)
    • MongoDB (opens new window)
    • Zookeeper (opens new window)
  • Java面试题 (opens new window)
  • JUC面试题 (opens new window)
  • JVM面试题 (opens new window)
  • Linux面试题 (opens new window)
  • SQL面试题 (opens new window)
  • Maven面试题 (opens new window)
  • Redis面试题 (opens new window)
  • SSM面试题 (opens new window)
  • SpringCloud面试题 (opens new window)
  • Linux (opens new window)
  • C++ (opens new window)
  • 数据库

    • MySQL (opens new window)
    • NoSQL (opens new window)
  • 软件测试

    • 软件测试 (opens new window)
  • 加密解密 (opens new window)
  • bilibili字幕提取 (opens new window)
  • 道理 (opens new window)
  • 关于博主

    • Github (opens new window)
    • CSDN (opens new window)
  • 关于本站

    • 如何搭建博客网站 (opens new window)
  • 设计模式

  • 软件测试

  • 软件测试实验

    • 软件测试
    • WebDriver⭐⭐
    • 定位⭐⭐
    • 浏览器操作⭐
    • 元素基本操作⭐⭐
    • 模拟键鼠操作⭐⭐
    • 消息框操作⭐
    • 切换浏览器窗口⭐
    • SoftwareTest⭐
    • SoftwareTest
    • SoftwareTest
    • SoftwareTest
    • SoftwareTest
  • 计算机
  • 软件测试实验
2025-03-17
0
0

切换浏览器窗口⭐

  • driver.window_handles获取打开的所有窗口句柄,是一个列表。

    • 所谓句柄(handles),就是窗口的唯一标识,系统通过窗口的句柄来区分不同的窗口。

    • 列表中每个窗口句柄的出现顺序是窗口的启动顺序,所有最后启动的那个窗口的句柄就是列表最后一个成员(索引号是-1)

  • 切换到最新窗口的步骤:

    • list1=driver.window_handles

    • driver.switch_to.window(list1[-1])

  • 获得当前窗口句柄

    • driver.current_window_handle
  • 关闭窗口有两种方法:

    • driver.quit0→关闭本次运行期间所启动的所有浏览器窗口,退出驱动程序,一般用于程序末尾,测试结束时使用。

    • driver.close(0→关闭当前一个浏览器窗口,保留其他浏览器窗口,一般用于业务步骤之间,属于一个测试中间的操作步骤。

  • 所有的操作只针对当前窗口:

    • 比如close只关闭当前一个窗口,find_element查找元素只在当前窗口里查找。
  • 没有执行窗口切换的代码时,当前窗口就是最初启动的窗口。

  • 当前窗口已经被关闭以后,不会自动切换到其他窗口

    • 就算其他窗口只有一个,也不会自动变为当前窗口。
  • NoSuchWindowException异常原因:

    • 当前窗口已经被关闭,或要切换到的目标窗口句柄不正确。
driver.find_element(By.LINK_TEXT,"EC").click()#打开一个新窗口

a=driver.current_window_handle#获取当前窗口句柄
Lst1=driver.window_handles#获取所有窗口句柄
driver.switch_to.window(lst1[-1])#切换到最新窗口

driver.find_element(By.LINK_TEXT,"ECShop ").click()#新窗口

Lst2=driver.window_handles
driver.switch_to.window(lst2[-1])#切换到最新窗口
driver.close()#关闭当前窗口
driver.switch_to.window(a)#切换到最初窗口
  • 切换窗口语法总结:

    • driver.current_window_handle→获得当前浏览器窗口句柄

    • driver.windows_handles→获得所有浏览器窗口句柄(List)

    • driver.switch_to.window(窗口句柄)→切换到特定窗口

    • driver.close()→关闭当前一个浏览器窗口

    • driver.quit()→关闭所有浏览器窗口

​

#软件测试
上次更新: 2025/5/2 14:40:28
消息框操作⭐
SoftwareTest⭐

← 消息框操作⭐ SoftwareTest⭐→

最近更新
01
项目优化
05-06
02
项目优化
05-06
03
延迟消息
05-05
更多文章>
Theme by Vdoing | Copyright © 2025-2025 Cyan Blog
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式