python3 selenium 切换窗口的几种方法小结

yipeiwu_com5年前Python基础

第一种方法:

使用场景:

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

使用方法:

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

以上这篇python3 selenium 切换窗口的几种方法小结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python将字典列表导出为Excel文件的方法

python将字典列表导出为Excel文件的方法

将如下的字典列表内容导出为Excel表格文件形式: 关于上图字典列表的写入,请参考文章:/post/169088.htm python将字典列表导出为Excel文件的方法,如下所示:...

常见的python正则用法实例讲解

下面列出Python正则表达式的几种匹配用法: 此外,关于正则的一切http://deerchao.net/tutorials/regex/regex.htm  1.测试正则表...

Python+OpenCV 实现图片无损旋转90°且无黑边

Python+OpenCV 实现图片无损旋转90°且无黑边

0. 引言 有如上一张图片,在以往的图像旋转处理中,往往得到如图所示的图片。 然而,在进行一些其他图像处理或者图像展示时,黑边带来了一些不便。本文解决图片旋转后出现黑边的问题,实现了...

浅析Django下关于session的使用

浅析Django下关于session的使用

一、Session的概念 cookie是在浏览器端保存键值对数据,而session是在服务器端保存键值对数据 session 的使用依赖 cookie:在使用Session后,会在Coo...

深入浅析Python中list的复制及深拷贝与浅拷贝

深入浅析Python中list的复制及深拷贝与浅拷贝

在Python中,经常要对一个list进行复制。对于复制,自然的就有深拷贝与浅拷贝问题。深拷贝与浅拷贝的区别在于,当从原本的list复制出新的list之后,修改其中的任意一个是否会对另一...