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进程间通信用法实例
Jun 04 Python
Python实时获取cmd的输出
Dec 13 Python
Python OpenCV 直方图的计算与显示的方法示例
Feb 08 Python
python topN 取最大的N个数或最小的N个数方法
Jun 04 Python
python设置值及NaN值处理方法
Jul 03 Python
python开头的coding设置方法
Aug 08 Python
Python通过两个dataframe用for循环求笛卡尔积
Apr 29 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
May 26 Python
Python configparser模块应用过程解析
Aug 14 Python
python获取时间戳的实现示例(10位和13位)
Sep 23 Python
python给list排序的简单方法
Dec 10 Python
python解决OpenCV在读取显示图片的时候闪退的问题
Feb 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桌面中心(二) 数据库写入
2007/03/11 PHP
供参考的 php 学习提高路线分享
2011/10/23 PHP
深入PHP nl2br()格式化输出的详解
2013/06/05 PHP
PHP Curl多线程原理实例详解
2013/11/06 PHP
ThinkPHP里用U方法调用js文件实例
2015/06/18 PHP
教大家制作简单的php日历
2015/11/17 PHP
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
jquery封装的对话框简单实现
2013/07/21 Javascript
$.each遍历对象、数组的属性值并进行处理
2014/07/18 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
jQuery+pjax简单示例汇总
2017/04/21 jQuery
nodejs使用redis作为缓存介质实现的封装缓存类示例
2018/02/07 NodeJs
JavaScript判断数组类型的方法
2019/10/23 Javascript
[04:16]DOTA2英雄梦之声_第09期_斧王
2014/06/21 DOTA
Python线程详解
2015/06/24 Python
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
Python冲顶大会 快来答题!
2018/01/17 Python
python爬虫面试宝典(常见问题)
2018/03/02 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
2019/06/04 Python
分享一个pycharm专业版安装的永久使用方法
2019/09/24 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
2020/04/10 HTML / CSS
什么是规则表达式
2012/05/03 面试题
美丽乡村建设实施方案
2014/03/23 职场文书
事假请假条范文
2014/04/11 职场文书
学校爱国卫生月活动总结
2014/06/25 职场文书
借名购房协议书范本
2014/10/06 职场文书
2014年组织部工作总结
2014/11/14 职场文书
医院财务人员岗位职责
2015/04/14 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
python实现剪贴板的操作
2021/07/01 Python