第一种方法:
使用场景:
打开多个窗口,需要定位到新打开的窗口
使用方法:
# 获取打开的多个窗口句柄 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、辛苦原创,转载请注明出处