python3 selenium 切换窗口的几种方法

【Python】Selenium怎么切换浏览器的页面 我们在爬网使用Selenium进行测试的时候,有时候想要点击浏览器里面的网址,跳到另一个页面上,获取第二个页面的内容。这里主要使用window_handles来切换浏览器的页面 阅读详情

第一种方法:

使用场景:

打开多个窗口,需要定位到新打开的窗口

使用方法:

# 获取打开的多个窗口句柄
windows = driver.window_handles
# 切换到当前最新打开的窗口
driver.switch_to.window(windows[-1])

举例说明:

 1 # _._ coding:utf-8 _._
 2 
 3 """
 4 :author: 花花测试
 5 :time: 2017.05.03
 6 :content: 使用第一种方法切换浏览器
 7 """
 8 
 9 from selenium import webdriver
10 import time
11 
12 #   打开课工场网站主页【第一个窗口】
13 driver = webdriver.Chrome()
14 driver.get('http://www.kgc.cn/')
15 driver.maximize_window()
16 
17 #   点击全部课程,进入课程库【第二个窗口】
18 driver.find_element_by_link_text('全部课程').click()
19 time.sleep(3)
20 
21 #   使用第一种方法切换浏览器【切换到第二个窗口】
22 windows = driver.window_handles
23 driver.switch_to.window(windows[-1])
24 time.sleep(3)
25 
26 #   点击课程库中的某个课程,进入课程详情界面【在第二个窗口页面进行元素点击操作,来判断窗口是否切换成功】
27 driver.find_element_by_xpath('//*[@id="yw1"]/ul/li[2]').click()
28 time.sleep(3)
29 
30 #   关闭浏览器
31 driver.quit()
32 print('测试通过')

 

第二种方法:

使用场景:

打开两个窗口,需要定位到新打开的窗口

使用方法:

# 获得打开的第一个窗口句柄
window_1 = driver.current_window_handle
# 获得打开的所有的窗口句柄
windows = driver.window_handles
# 切换到最新的窗口
for current_window in windows:
    if current_window != window_1:
        driver.switch_to.window(current_window)

举例说明:

 
 1 # _._ coding:utf-8 _._
 2 
 3 """
 4 :author: 花花测试
 5 :time: 2017.05.03
 6 :content: 使用第二种方法切换浏览器
 7 """
 8 
 9 from selenium import webdriver
10 import time
11 
12 from selenium import webdriver
13 import time
14 
15 #   打开课工场网站主页【第一个窗口】
16 driver = webdriver.Chrome()
17 driver.get('http://www.kgc.cn/')
18 driver.maximize_window()
19 
20 #   点击全部课程,进入课程库【第二个窗口】
21 driver.find_element_by_link_text('全部课程').click()
22 time.sleep(3)
23 
24 #   使用第二种方法切换浏览器【切换到第二个窗口】
25 window_1 = driver.current_window_handle
26 windows = driver.window_handles
27 for current_window in windows:
28     if current_window != window_1:
29         driver.switch_to.window(current_window)
30 time.sleep(3)
31 
32 #   点击课程库中的某个课程,进入课程详情界面【在第二个窗口页面进行元素点击操作,来判断窗口是否切换成功】
33 driver.find_element_by_xpath('//*[@id="yw1"]/ul/li[2]').click()
34 time.sleep(3)
35 
36 #   关闭浏览器
37 driver.quit()
38 print('测试通过')
 
两种方法的区别:
1、第一种方法比较简单,能提升整体代码的性能
2、第二种方法是大家最常用的方法,比较容易理解


说明:

1、我的脚本都是以课工场为例,如果有什么不明白的地方,欢迎大家留言,我看的话会及时给大家解答

2、辛苦原创,转载请注明出处

Python+Selenium-13-switch_to.window切换窗口 切换窗口 使用场景 (1)点击右侧某一个来访用户,会重新打开一个新tab (2)新开的页面,是来访用户的主页,包含用户名 (3)我们现在做这样一件事,就是判断我们点击的“来访用户”与链接跳转的用户主页是否对应 比如:我们点击的是“羿飞教育管理员”这个来访用户,点击后,会进入管理员的主页 思路 (1)先定位到最近来访中的某个用户(列表第一个为例),保存下用户名,点击... 阅读详情

相关推荐

第08课:子窗口交互

用 open 方法打开的子窗口也会面临和其他窗口交互的问题,交互无外乎互相传递数据,并接收其他窗口传递过来的数据。 8.1 最简单的传递接收数据 向 open 方法创建的子窗口传递数据有多种方法,其中之一就是使用 BrowserWindowProxy.postMessage 方法,该方法可以向指定的窗口传递任意类型的数据和来源(origin),如果不知来源,可以使用星号 '*' 代替,关于来源是什...

一个被知识诅咒的人 1306

selenium+python切换浏览器窗口

selenium在当前浏览器页面打开了新的窗口,此时如果要聚焦到新开的浏览器窗口,就需要切换到新的窗口,切换窗口的操作selenium+python示例如下:

梦里有阳光 2241

【python】【selenium】python如何用selenium切换窗口

selenium的操作都需要人为地去控制,包括如果你打开了一个新窗口,就有必要将driver重新定位到新窗口,不然元素定位都会出错。所以,切换窗口是selenium自动化程序的必备功能,建议写成公共函数方便调用。 上述是比较简单的一种写法,当有两个窗口时,新窗口就是windows[1] 在这个基础上,可以写成更通用的 当然,只这么写是有缺陷的,最好加上len(windows)>=1的前提条件。...

每日出拳老爷子的博客 1575

『python爬虫』23. selenium之窗口切换与iframe(保姆级图文)

『python爬虫』23. selenium之窗口切换与iframe(保姆级图文)

MZH 3768

新手也能搞定!用ADS 2023从零设计一个超宽带Wilkinson功分器(附完整版图)

本文详细介绍了如何使用ADS 2023从零开始设计超宽带Wilkinson功分器,涵盖介质板参数设置、微带线计算优化、版图生成验证等关键步骤。通过实例演示和常见问题排查,帮助射频工程新手快速掌握功分器设计技巧,提升设计效率。

weixin_42692935的博客 476

别再死记硬背了!用Multisim仿真5分钟搞懂运放电压跟随器到底要不要加反馈电阻

本文通过Multisim仿真实验,深入解析运放电压跟随器中反馈电阻的必要性。实验对比不同阻值对电路性能的影响,揭示反馈电阻在提供偏置电流通路、提升高频稳定性和ESD保护中的关键作用,并给出工程实践中的优化建议,帮助工程师快速掌握运放电路设计要点。

weixin_42641998的博客 371

python selenium切换窗口_python3 selenium 切换窗口的几种方法

第一种方法:使用场景:打开多个窗口,需要定位到新打开的窗口使用方法:# 获取打开的多个窗口句柄windows = driver.window_handles# 切换到当前最新打开的窗口driver.switch_to.window(windows[-1])举例说明:# _._ coding:utf-8 _._""":author: 花花测试:time: 2017.05.03:content: 使用...

weixin_39612554的博客 1735

FX2N-2AD模块实战:从硬件连接到FROM/TO指令编程详解

本文详细解析FX2N-2AD模拟量输入模块的硬件连接与FROM/TO指令编程技巧,涵盖BFM缓冲存储器配置、梯形图程序设计及工程实战经验。通过实例演示如何实现精准信号采集与数据处理,特别针对PLC系统中的常见故障提供解决方案,助力工业自动化工程师高效完成设备调试与维护。

prometheus9mon的博客 507

python如何切换windows窗口_python3 selenium 切换窗口的几种方法小结

第一种方法:使用场景:打开多个窗口,需要定位到新打开的窗口使用方法:# 获取打开的多个窗口句柄windows = driver.window_handles# 切换到当前最新打开的窗口driver.switch_to.window(windows[-1])举例说明:# _._ coding:utf-8 _._""":author: 花花测试:time: 2017.05.03:content: 使用...

weixin_39974557的博客 1982

Eclipse邂逅Deepseek:本地化部署全攻略

通过前面一系列的步骤,我们成功地在 Eclipse 中完成了 Deepseek 的本地化部署,并且对部署后的功能进行了测试和优化,还解决了可能遇到的一些常见问题。这一过程不仅让我们体验到了将强大的大语言模型与高效的开发环境相结合的魅力,也为我们在软件开发过程中带来了诸多便利。本地化部署 Deepseek 到 Eclipse,使得我们在代码编写过程中能够获得智能的代码补全和精准的问答支持,大大提高了开发效率。同时,本地化部署保障了数据的安全性和隐私性,避免了数据在传输过程中可能面临的风险。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 4519

【WRF理论第十五期】WPS中输入geogrid二进制格式

WPS中输入geogrid二进制格式

WW、forever的博客 1080

机器人嵌入式岗位定价逻辑重写:STM32、RTOS与Linux技能溢价迁移

嵌入式系统开发中,实时操作系统与Linux内核的协同正成为机器人控制的核心技术栈。RTOS通过任务调度与资源隔离保障微秒级实时响应,而Linux凭借PREEMPT_RT补丁与多核异构架构,将AI推理与运动控制融合于同一计算平台。这种技术演进使系统级调试、多核通信与实时调优能力成为工程实践中的关键价值点,广泛应用于协作机器人、具身智能与工业自动化场景。在此背景下,STM32、RTOS与Linux的技能组合正在被重新定价,嵌入式工程师需从单机开发转向系统架构思维。

weixin_34355559的博客 463

华为od统一考试B卷【单词搜索】C++ 实现

找到它是一个小游戏,你需要在一个矩阵中找到给定的单词。假设给定单词 HELLOWORD,在矩阵中只要能找到 H->E->L->L->O->W->O->R->L->D连成的单词,就算通过。意区分英文字母大小写,并且您只能上下左右行走,不能走回头路。

MISAYAONE的博客 712

python切换消息窗_python3 selenium 切换窗口的几种方法小结

第一种方法:使用场景:打开多个窗口,需要定位到新打开的窗口使用方法:# 获取打开的多个窗口句柄windows = driver.window_handles# 切换到当前最新打开的窗口driver.switch_to.window(windows[-1])举例说明:# _._ coding:utf-8 _._""":author: 花花测试:time: 2017.05.03:content: 使用...

weixin_39853968的博客 129

禾赛激光雷达AT128P/海康相机(1):ROS环境设备驱动

sudo cp *.so /opt/MVS/lib/64/ # 复制当前文件夹中所有.so文件 到 “/opt/MVS/lib/64/” 文件中。将相应的.so文件复制到 /opt/MVS/lib/64/。我解压的是x86_64的,解压之后,打开,再解压MVS。然后在上一层,也就是选择x86_64那一层打开终端。新建一个工作空间,或者打开自己的工作空间。)包放在src内,并解压,然后编译。MVS V2.1.2下载之后解压,// 驱动代码下载到src文件里面。// 特定文件夹中打开终端。

努力努力努力 882

【TC3xx芯片】TC3xx芯片PFlash的ECC校验问题补充

TC3xx芯片PFlash的ECC校验问题补充

qq_36056498的博客 1153

python123网页版切屏_python3 selenium 切换窗口的几种方法

第一种方法:使用场景:打开多个窗口,需要定位到新打开的窗口使用方法:# 获取打开的多个窗口句柄windows = driver.window_handles# 切换到当前最新打开的窗口driver.switch_to.window(windows[-1])举例说明:1 # _._ coding:utf-8 _._23 """4 :author: 花花测试5 :time: 2017.05.036 :...

weixin_39759182的博客 468

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

selenium切换窗口的几种方法小结

第一种方法 使用场景 打开多个窗口,需要定位到新打开的窗口; 使用方法: # 获取打开的多个窗口句柄 windows = driver.window_handles # 切换到当前最新打开的窗口 driver.switch_to.window(windows[-1]) 举例说明 # _._ coding:utf-8 _._ from selenium import webdriver impor...

daiyu__zz的博客 3万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

python如何切换windows窗口_selenium+python 切换窗口的几种方法

第一种方法:使用场景:打开多个窗口,需要定位到新打开的窗口使用方法:# 获取打开的多个窗口句柄windows = driver.window_handles# 切换到当前最新打开的窗口driver.switch_to.window(windows[-1])举例说明:from selenium import webdriverimport time# 打开百度主页【第一个窗口】driver = ...

weixin_39571403的博客 1652

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

python+selenium之窗口切换三种操作

window窗口切换有两种操作 窗口的切换有三种操作: 这里主要记录第二种稍微智能一点的操作,第一种在文章会在文章末尾给大家顺带提一下,注意:讲的是window窗口切换哦,不是html中的iframe面页切换,下次再给说iframe切换 在使用python+selenium操作页面元素时,会经常碰到点击某个元素弹出新的窗口,这是如果直接在新窗口操作元素肯定不行的,代码不是人类,我们的告诉它,要去另...

saber_sss的博客 4278

Selenium常用操作——打开多窗口和切换窗口

记录Selenium常用操作——打开多窗口和切换窗口

snailzzw的博客 8382

selenium窗口切换

说明:本篇博客基于selenium 4.1.0。

Tester_muller的博客 8769

python打开窗口切换_Python3 Selenium多窗口切换

Python3 Selenium多窗口切换以腾讯网(http://www.qq.com/)为例,打开腾讯网,点击新闻,打开腾讯新闻,点击新闻中第一个新闻链接。在WebDriver中封装了获取当前窗口句柄方法和获取所有窗口句柄的方法以及切换指定句柄窗口的方法;(句柄:英文handle,窗口的唯一识别码)方法:1). driver.current_window_handle --&g...

weixin_39549312的博客 280

Python +Selenium之(窗口切换操作、弹出对话框处理、获取当前窗口的title跟url)

1、切换窗口 在使用webdriver的时候,经常会遇到在多个窗口之间切换的操作,比如在A窗口操作某个元素,跳转到B窗口,然后又进入C窗口,此时这种情况就需要用到特殊的窗口处理方法 - [ ] 切换到新窗口里面的操作 循环遍历 deriver.window_handles driver.switch_to.wondow(handle)的方法切入新窗口 切换到最初的窗口 需要保存主窗口的handle 关闭窗口用 close 比如: 打开百度,输入周杰伦,点击链接打开新的窗口 from sele

wudada1993的博客 7104

Selenium之多窗口句柄的切换

前言 有些页面的链接打开后,会重新打开一个窗口,对于这种情况,想在新页面上操作,就得先切换窗口了。获取窗口的唯一标识用句柄表示,所以只需要切换句柄,我们就能在多个页面上灵活自如的操作了。 一、认识多窗口 1.打开赶集网:http://bj.ganji.com/,点击招聘求职按钮会发现右边多了一个窗口标签 2.我们用代码去执行点击的时候,发现界面上出现两个窗口,如下图这种情况就是多窗口了。 3.到这里估计有小伙伴纳闷了,手工点击是2个标签,怎么脚本点击就变成2个窗口了,这个之前讲...

专注自动化、性能测试、测试架构学习交流 8353
下一篇: 使用Cursor分析Jira数据实战指南(MCP配置版)
公子测试
博客等级 码龄10年 5粉丝 2原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值