python3 selenium 切换窗口的几种方法小结
第一种方法:
使用场景:
打开多个窗口,需要定位到新打开的窗口
使用方法:
# 获取打开的多个窗口句柄 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、第二种方法是大家最常用的方法,比较容易理解
相关推荐
xiangxiaojun 2020-09-23
letheashura 2020-08-14
王练 2020-07-18
xiangxiaojun 2020-06-25
Feastaw 2020-06-18
云之高水之远 2020-06-14
Reiki 2020-06-12
songerxing 2020-06-11
王练 2020-06-11
tiankele0 2020-06-09
云之高水之远 2020-06-05
Reiki 2020-08-16
tiankele0 2020-07-29
curiousL 2020-07-18
tiankele0 2020-07-18
amei0 2020-07-08