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备份文件以及mysql数据库的脚本代码
Jun 10 Python
python实现k-means聚类算法
Feb 23 Python
python sort、sort_index方法代码实例
Mar 28 Python
python 列表推导式使用详解
Aug 29 Python
Python 实现Serial 与STM32J进行串口通讯
Dec 18 Python
Python3 filecmp模块测试比较文件原理解析
Mar 23 Python
Python简单实现词云图代码及步骤解析
Jun 04 Python
使用npy转image图像并保存的实例
Jul 01 Python
PyQt实现计数器的方法示例
Jan 18 Python
详解Python 中的 defaultdict 数据类型
Feb 22 Python
python批量创建变量并赋值操作
Jun 03 Python
Pandas 稀疏数据结构的实现
Jul 25 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
基于qmail的完整WEBMAIL解决方案安装详解
2006/10/09 PHP
让你的网站首页自动选择语言转跳
2006/12/06 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
JavaScript定义类或函数的几种方式小结
2011/01/09 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
Jquery Ajax方法传值到action的方法
2014/05/11 Javascript
jQuery实现隔行背景色变色
2014/11/24 Javascript
javacript获取当前屏幕大小
2016/06/04 Javascript
JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
2017/03/30 Javascript
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
JS实现打砖块游戏
2020/02/14 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
在Vue 中实现循环渲染多个相同echarts图表
2020/07/20 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
[01:14]2014DOTA2展望TI 剑指西雅图newbee战队专访
2014/06/30 DOTA
简单介绍Python中的decode()方法的使用
2015/05/18 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
Python爬虫小技巧之伪造随机的User-Agent
2018/09/13 Python
基于python实现名片管理系统
2018/11/30 Python
python多线程扫描端口(线程池)
2019/09/04 Python
python实现小程序推送页面收录脚本
2020/04/20 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
python基于Kivy写一个图形桌面时钟程序
2021/01/28 Python
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
祖国在我心中演讲稿
2014/01/15 职场文书
旅游个人求职信范文
2014/01/30 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers
SQL Server连接查询的实用教程
2021/04/07 SQL Server
Python基础知识之变量的详解
2021/04/14 Python
面试必问:圣杯布局和双飞翼布局的区别
2021/05/13 HTML / CSS
一文搞懂Golang 时间和日期相关函数
2021/12/06 Golang
TV动画《间谍过家家》公开PV
2022/03/20 日漫