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


Posted in Python onMay 21, 2018

第一种方法:

使用场景:

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

使用方法:

# 获取打开的多个窗口句柄
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创建线程示例
May 06 Python
Python XML RPC服务器端和客户端实例
Nov 22 Python
Python聚类算法之凝聚层次聚类实例分析
Nov 20 Python
Python实现批量更换指定目录下文件扩展名的方法
Sep 19 Python
python爬取哈尔滨天气信息
Jul 14 Python
PYQT5设置textEdit自动滚屏的方法
Jun 14 Python
Python定时发送天气预报邮件代码实例
Sep 09 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
Jan 22 Python
浅谈JupyterNotebook导出pdf解决中文的问题
Apr 22 Python
通过实例简单了解Python sys.argv[]使用方法
Aug 04 Python
Python如何创建装饰器时保留函数元信息
Aug 07 Python
python numpy中setdiff1d的用法说明
Apr 22 Python
python selenium 对浏览器标签页进行关闭和切换的方法
May 21 #Python
pytorch cnn 识别手写的字实现自建图片数据
May 20 #Python
pytorch 把MNIST数据集转换成图片和txt的方法
May 20 #Python
Python安装lz4-0.10.1遇到的坑
May 20 #Python
Python requests发送post请求的一些疑点
May 20 #Python
python中virtualenvwrapper安装与使用
May 20 #Python
django静态文件加载的方法
May 20 #Python
You might like
PHP中的函数嵌套层数限制分析
2011/06/13 PHP
PHP滚动日志的代码实现
2015/06/10 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
2016/04/27 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
Yii实现文章列表置顶功能示例
2016/10/18 PHP
php中Redis的应用--消息传递
2017/03/28 PHP
PHP单例模式模拟Java Bean实现方法示例
2018/12/07 PHP
JQuery 学习笔记 选择器之六
2009/07/23 Javascript
分享27个jQuery 表单插件集合推荐
2011/04/25 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
2013/09/02 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
JS实现的二叉树算法完整实例
2017/04/06 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
jQuery+Datatables实现表格批量删除功能【推荐】
2018/10/24 jQuery
layui 监听select选择 获取当前select的ID名称方法
2019/09/24 Javascript
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
Python continue语句用法实例
2014/03/11 Python
Python代码的打包与发布详解
2014/07/30 Python
python正则表达式及使用正则表达式的例子
2018/01/22 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
Python Numpy数组扩展repeat和tile使用实例解析
2019/12/09 Python
Python for循环搭配else常见问题解决
2020/02/11 Python
基于Python爬取素材网站音频文件
2020/10/21 Python
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
植树节标语
2014/06/27 职场文书
光荣之路观后感
2015/06/12 职场文书
销售口号霸气押韵
2015/12/24 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang
python常见的占位符总结及用法
2021/07/02 Python
django 认证类配置实现
2021/11/11 Python