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 相关文章推荐
ptyhon实现sitemap生成示例
Mar 30 Python
Python读写Excel文件方法介绍
Nov 22 Python
利用Psyco提升Python运行速度
Dec 24 Python
Python爬虫DOTA排行榜爬取实例(分享)
Jun 13 Python
python selenium自动上传有赞单号的操作方法
Jul 05 Python
使用tensorflow实现线性svm
Sep 07 Python
Python SQLAlchemy入门教程(基本用法)
Nov 11 Python
Python Numpy 控制台完全输出ndarray的实现
Feb 19 Python
Python object类中的特殊方法代码讲解
Mar 06 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
Jul 28 Python
python实现mask矩阵示例(根据列表所给元素)
Jul 30 Python
Python matplotlib安装以及实现简单曲线的绘制
Apr 26 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
smarty模板中使用get、post、request、cookies、session变量的方法
2014/04/24 PHP
PHP在网页中动态生成PDF文件详细教程
2014/07/05 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
php批量修改表结构实例
2017/05/24 PHP
ThinkPHP中图片按比例切割的代码实例
2019/03/08 PHP
Jquery操作Select 简单方便 一个js插件搞定
2009/11/12 Javascript
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
2012/05/23 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
jquery div拖动效果示例代码
2013/12/08 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
2015/08/14 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
2016/08/04 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
详解基于Vue+Koa的pm2配置
2017/10/24 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
webpack引入eslint配置详解
2018/01/22 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
2018/10/19 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
Python数据类型之List列表实例详解
2019/05/08 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
解决python3 requests headers参数不能有中文的问题
2019/08/21 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
为什么相对PHP黑python的更少
2020/06/21 Python
使用CSS3实现多列布局与多背景的技巧
2016/02/29 HTML / CSS
印度第一网上礼品店:IGP.com
2020/02/06 全球购物
期终自我鉴定
2014/02/17 职场文书
班主任经验交流会主持词
2014/04/01 职场文书
工业设计专业自荐书
2014/06/05 职场文书
六年级学生期末评语
2014/12/26 职场文书
事业单位聘任报告
2015/03/02 职场文书
小学班主任个人总结
2015/03/03 职场文书
防溺水安全教育主题班会
2015/08/12 职场文书
Python实现信息轰炸工具(再也不怕说不过别人了)
2021/06/11 Python
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript