selenium 切换窗口的几种方法

Posted xiaohuhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium 切换窗口的几种方法相关的知识,希望对你有一定的参考价值。

第一种方法:

使用场景:

打开多个窗口,需要定位到新打开的窗口

使用方法:

# 获取打开的多个窗口句柄
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、第二种方法是大家最常用的方法,比较容易理解

 

以上是关于selenium 切换窗口的几种方法的主要内容,如果未能解决你的问题,请参考以下文章

selenium操作下拉滚动条的几种方法

selenium,Python3滚动到页面底部的几种解决方案

java在线聊天项目 使用SWT快速制作登录窗口,可视化窗口Design 更换窗口默认皮肤(切换Swing自带的几种皮肤如矩形带圆角)

Selenium窗口切换-----Selenium快速入门

06-Selenium的窗口切换

selenium定位不到元素的几种情况