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实现简单HTML表格解析的方法
Jun 15 Python
Python3处理HTTP请求的实例
May 10 Python
Python如何使用k-means方法将列表中相似的句子归类
Aug 08 Python
Python爬虫:将headers请求头字符串转为字典的方法
Aug 21 Python
Python自动化测试笔试面试题精选
Mar 12 Python
在keras中model.fit_generator()和model.fit()的区别说明
Jun 17 Python
python GUI模拟实现计算器
Jun 22 Python
Python3如何实现Win10桌面自动切换
Aug 11 Python
Jupyter安装链接aconda实现过程图解
Nov 02 Python
Python3 如何开启自带http服务
May 18 Python
matlab xlabel位置的设置方式
May 21 Python
Python 可迭代对象 iterable的具体使用
Aug 07 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中设置多级目录session的问题
2011/08/08 PHP
PHP中array_merge和array相加的区别分析
2013/06/17 PHP
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
2015/12/21 PHP
PHP手机短信验证码实现流程详解
2018/05/17 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
2019/05/27 PHP
tp5.1框架数据库子查询操作实例分析
2020/05/26 PHP
node.js应用后台守护进程管理器Forever安装和使用实例
2014/06/01 Javascript
浅析webapp框架AngularUI的demo
2014/12/21 Javascript
jquery validate表单验证插件
2016/09/06 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
2017/10/24 Javascript
微信小程序表单验证功能完整实例
2017/12/01 Javascript
使用puppeteer破解极验的滑动验证码
2018/02/24 Javascript
使用Vue开发自己的Chrome扩展程序过程详解
2019/06/21 Javascript
Node爬取大批量文件的方法示例
2019/06/28 Javascript
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
Django中处理出错页面的方法
2015/07/15 Python
python实现字符串连接的三种方法及其效率、适用场景详解
2017/01/13 Python
浅谈python数据类型及类型转换
2017/12/18 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
10行Python代码实现Web自动化管控的示例代码
2020/08/14 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
html5 canvas移动浏览器上实现图片压缩上传
2016/03/11 HTML / CSS
AssertionError 跟一下那个类是 “is – a”的关系
2012/02/21 面试题
资料员岗位职责
2013/11/17 职场文书
村捐赠仪式答谢词
2014/01/21 职场文书
六查六看剖析材料
2014/02/15 职场文书
领导干部廉政承诺书
2014/03/27 职场文书
铁路安全事故反思
2014/04/26 职场文书
运动会宣传口号
2014/06/09 职场文书
2014国庆节演讲稿:祖国在我心中(400字)
2014/09/25 职场文书
小学生表扬稿范文
2015/05/05 职场文书
初中信息技术教学反思
2016/02/16 职场文书
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL