Python3 Selenium 切换窗口句柄的两种核心方法详解
本文详细解析 Python3 Selenium 中切换浏览器窗口的两种常用方法。第一种通过获取 window_handles 列表并直接切换至最新句柄,代码简洁且性能较高;第二种通过遍历所有窗口句柄并排除当前窗口来定位新窗口,逻辑直观且易于理解。文章包含具体代码示例及对比分析,帮助开发者根据实际需求选择合适方案。
第一种方法:
使用场景:
当页面打开多个窗口,且需要定位并切换到新打开的窗口时适用。
使用方法:
# 获取打开的多个窗口句柄 windows = driver.window_handles # 切换到当前最新打开的窗口 driver.switch_to.window(windows[-1])
具体操作示例如下:
# _._ coding:utf-8 _._
"""
:author: 花花测试
:time: 2017.05.03
:content: 使用第一种方法切换浏览器
"""
from selenium import webdriver
import time
# 打开课工场网站主页【第一个窗口】
driver = webdriver.Chrome()
driver.get('http://www.kgc.cn/')
driver.maximize_window()
# 点击全部课程,进入课程库【第二个窗口】
driver.find_element_by_link_text('全部课程').click()
time.sleep(3)
# 使用第一种方法切换浏览器【切换到第二个窗口】
windows = driver.window_handles
driver.switch_to.window(windows[-1])
time.sleep(3)
# 点击课程库中的某个课程,进入课程详情界面【在第二个窗口页面进行元素点击操作,来判断窗口是否切换成功】
driver.find_element_by_xpath('//*[@id="yw1"]/ul/li[2]').click()
time.sleep(3)
# 关闭浏览器
driver.quit()
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)
具体操作示例如下:
# _._ coding:utf-8 _._
"""
:author: 花花测试
:time: 2017.05.03
:content: 使用第二种方法切换浏览器
"""
from selenium import webdriver
import time
from selenium import webdriver
import time
# 打开课工场网站主页【第一个窗口】
driver = webdriver.Chrome()
driver.get('http://www.kgc.cn/')
driver.maximize_window()
# 点击全部课程,进入课程库【第二个窗口】
driver.find_element_by_link_text('全部课程').click()
time.sleep(3)
# 使用第二种方法切换浏览器【切换到第二个窗口】
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)
time.sleep(3)
# 点击课程库中的某个课程,进入课程详情界面【在第二个窗口页面进行元素点击操作,来判断窗口是否切换成功】
driver.find_element_by_xpath('//*[@id="yw1"]/ul/li[2]').click()
time.sleep(3)
# 关闭浏览器
driver.quit()
print('测试通过')
两种方法的区别:
1、第一种方法实现较为简单,有助于提升整体代码的执行性能。
2、第二种方法是开发者更常用的方式,其逻辑直观,便于理解和维护。
以上关于 Python3 Selenium 切换窗口的几种方法小结即为分享的全部内容,希望能对各位读者提供参考,也希望大家多多支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









