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、redis操作方法
Jun 28 Python
将TensorFlow的模型网络导出为单个文件的方法
Apr 23 Python
完美解决安装完tensorflow后pip无法使用的问题
Jun 11 Python
使用python读取csv文件快速插入数据库的实例
Jun 21 Python
python给微信好友定时推送消息的示例
Feb 20 Python
由Python编写的MySQL管理工具代码实例
Apr 09 Python
python实现名片管理系统项目
Apr 26 Python
Python配置虚拟环境图文步骤
May 20 Python
python实现大战外星人小游戏实例代码
Dec 26 Python
Python pandas如何向excel添加数据
May 22 Python
Pytorch实现将模型的所有参数的梯度清0
Jun 24 Python
10个示例带你掌握python中的元组
Nov 23 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单件模式结合命令链模式使用说明
2008/09/07 PHP
php UTF-8、Unicode和BOM问题
2010/05/18 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
2016/12/23 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
在IE6下发生Internet Explorer cannot open the Internet site错误
2010/06/21 Javascript
dotopAlert 提示用户需安装播放器的代码
2012/09/17 Javascript
window.open以post方式将内容提交到新窗口
2012/12/26 Javascript
jQuery中fadeIn、fadeOut、fadeTo的使用方法(图片显示与隐藏)
2013/05/08 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
jQuery中animate()方法用法实例
2014/12/24 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
2017/01/05 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
浅析Vue中method与computed的区别
2018/03/06 Javascript
NodeJS实现自定义流的方法
2018/08/01 NodeJs
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
小程序封装wx.request请求并创建接口管理文件的实现
2019/04/29 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
python 读取文件并把矩阵转成numpy的两种方法
2019/02/12 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
python实现图片转换成素描和漫画格式
2020/08/19 Python
Python 多进程、多线程效率对比
2020/11/19 Python
高级编程求职信模板
2014/02/16 职场文书
作风年建设汇报材料
2014/08/14 职场文书
银行会计主管岗位职责
2014/10/01 职场文书
2014年学校安全工作总结
2014/11/13 职场文书
党支部承诺书
2015/01/20 职场文书
创业计划书之香辣虾火锅
2019/09/23 职场文书
MySQL 逻辑备份 into outfile
2022/05/15 MySQL