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字符串的encode与decode研究心得乱码问题解决方法
Mar 23 Python
Python使用正则匹配实现抓图代码分享
Apr 02 Python
Python实现字符串格式化的方法小结
Feb 20 Python
Pandas标记删除重复记录的方法
Apr 08 Python
如何利用python查找电脑文件
Apr 27 Python
Python读取txt内容写入xls格式excel中的方法
Oct 11 Python
python连接mongodb密码认证实例
Oct 16 Python
Python Pandas 获取列匹配特定值的行的索引问题
Jul 01 Python
django项目中使用手机号登录的实例代码
Aug 15 Python
python支持多继承吗
Jun 19 Python
python help函数实例用法
Dec 06 Python
pytorch中index_select()的用法详解
Jan 06 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框架Phpbean说明
2008/01/10 PHP
由php if 想到的些问题
2008/03/22 PHP
PHP删除特定数组内容并且重建数组索引的方法.
2011/03/25 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
UTF-8正则表达式如何匹配汉字
2015/08/03 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
JavaScript判断两种格式的输入日期的正确性的代码
2007/03/25 Javascript
Jquery中增加参数与Json转换代码
2009/11/20 Javascript
让mayfish支持mysqli数据库驱动的实现方法
2010/05/22 Javascript
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
2016/11/16 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
2017/07/23 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
2019/12/04 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
Python网络编程 Python套接字编程
2017/09/13 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
2018/04/09 Python
pycharm设置注释颜色的方法
2018/05/23 Python
浅谈python之高阶函数和匿名函数
2019/03/21 Python
python进程和线程用法知识点总结
2019/05/28 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
2019/06/28 Python
对Pytorch神经网络初始化kaiming分布详解
2019/08/18 Python
Python中关于logging模块的学习笔记
2020/06/03 Python
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
韩国11街:11STREET
2018/03/27 全球购物
建筑专业毕业生推荐信
2013/11/21 职场文书
自考生自我评价分享
2014/01/18 职场文书
质量月活动总结
2014/08/26 职场文书
党的群众路线整改落实情况汇报
2014/10/28 职场文书
中秋节寄语2015
2015/03/24 职场文书
办公室岗位职责范本
2015/04/11 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers