Selenium2+Python2.0自动化测试【7】 多窗口切换

本文介绍使用Selenium进行多窗口切换的操作方法,包括获取窗口句柄、打开新窗口及在不同窗口间切换等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1      多窗口切换

        WEB页面上的一些链接打开后,会重新打开一个窗口,如果想在新页面上操作,就得先切换窗口了。浏览器窗口的切换是通过句柄(handle)来操作,每个窗口都有一个句柄是窗口的唯一标识,代表当前窗口,需要操作哪个页面的窗口,切换到窗口对应的句柄。

下面以打开百度注册页面来介绍用法

1、打开百度网页

2、获取当前窗口的句柄

driver.current_window_handle

3、打开注册页面窗口

4、获取当前所有窗口的句柄

driver.window_handles

该方法获取的句柄数据以列表形式保存

5、进入注册窗口

窗口切换方法1:使用循环判断的方法切换窗口

6、返回搜索窗口

窗口切换方法2:使用访问列表的方法切换窗口

# coding=UTF-8
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("http://www.baidu.com")
# 获取百度搜索窗口句柄
src_handle = driver.current_window_handle
# 打印搜索窗口句柄
print "搜索窗口:", src_handle
driver.find_element_by_link_text(u'登录').click()
driver.find_element_by_link_text(u"立即注册").click()
# 获取当前所有打开的窗口的句柄,列表类型
all_handles = driver.window_handles
# 打印当前窗口句柄集合
print "所有窗口", all_handles
# 使用循环判断方法进入注册窗口
for handle in all_handles:
    if handle != src_handle:
       driver.switch_to.window(handle)
       # 打印当前窗口句柄,应为注册窗口句柄
        print "当前窗口:", handle
       driver.find_element_by_name("userName").send_keys(u'云起时')
time.sleep(5)
# 使用访问列表值的方法回到搜索窗口
driver.switch_to.window(all_handles[0])
# 打印当前窗口句柄,应为搜索窗口句柄
print "当前窗口:", driver.current_window_handle
driver.find_element_by_id("TANGRAM__PSP_4__closeBtn").click()
driver.find_element_by_id("kw").send_keys(u"python列表")
driver.find_element_by_id("su").click()
time.sleep(5)
driver.quit()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值