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 的 with 语句详解
Jun 13 Python
Python的迭代器和生成器使用实例
Jan 14 Python
简单讲解Python中的闭包
Aug 11 Python
web.py 十分钟创建简易博客实现代码
Apr 22 Python
qpython3 读取安卓lastpass Cookies
Jun 19 Python
通过5个知识点轻松搞定Python的作用域
Sep 09 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
Nov 17 Python
python将txt文档每行内容循环插入数据库的方法
Dec 28 Python
Python3内置模块之json编解码方法小结【推荐】
Dec 09 Python
python生成随机红包的实例写法
Sep 02 Python
使用Pycharm分段执行代码
Apr 15 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
Mar 04 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
探讨方法的重写(覆载)详解
2013/06/08 PHP
PHP编程风格规范分享
2014/01/15 PHP
Yii实现显示静态页的方法
2016/04/25 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
2016/10/25 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
2019/10/20 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
jQuery 遍历json数组的实现代码
2020/09/22 Javascript
jquery 读取页面load get post ajax 四种方式代码写法
2011/04/02 Javascript
分享一个asp.net pager分页控件
2012/01/04 Javascript
jQuery.extend 函数的详细用法
2012/06/27 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
jQuery封装的获取Url中的Get参数示例
2013/11/26 Javascript
javascript 事件处理示例分享
2014/12/31 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
2017/02/12 Javascript
原生JS仿QQ阅读点击展开、收起效果
2017/03/08 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
vue2.0全局组件之pdf详解
2017/06/26 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
2018/12/09 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
对Python3 goto 语句的使用方法详解
2019/02/16 Python
django xadmin action兼容自定义model权限教程
2020/03/30 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
Python字符串三种格式化输出
2020/09/17 Python
CSS3动画和HTML5新特性详解
2020/08/31 HTML / CSS
汤米巴哈马官方网站:Tommy Bahama
2017/05/13 全球购物
工地安全生产标语
2014/06/06 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏