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()