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开发windows GUI程序入门实例
Oct 23 Python
Python中用PIL库批量给图片加上序号的教程
May 06 Python
如何在Python函数执行前后增加额外的行为
Oct 20 Python
给我一面国旗 python帮你实现
Sep 30 Python
python 利用jinja2模板生成html代码实例
Oct 10 Python
Python 解析pymysql模块操作数据库的方法
Feb 18 Python
python如何提取英语pdf内容并翻译
Mar 03 Python
python使用pymongo与MongoDB基本交互操作示例
Apr 09 Python
python如何导出微信公众号文章方法详解
Aug 31 Python
Pycharm学生免费专业版安装教程的方法步骤
Sep 24 Python
如何在windows下安装配置python工具Ulipad
Oct 27 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
Mar 20 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 sprintf() 函数的应用(定义和用法)
2012/06/29 PHP
Yii2数据库操作常用方法小结
2017/05/04 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
asp 的 分词实现代码
2007/05/24 Javascript
javascript针对DOM的应用分析(三)
2012/04/15 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
js使用ajax读博客rss示例
2014/05/06 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
2014/11/23 Javascript
带有定位当前位置的百度地图前端web api实例代码
2016/06/21 Javascript
jQuery简单入门示例之用户校验demo示例
2016/07/09 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
JavaScript运动框架 链式运动到完美运动(五)
2017/05/18 Javascript
vue表单绑定实现多选框和下拉列表的实例
2017/08/12 Javascript
在小程序开发中使用npm的方法
2018/10/17 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
Vuex的actions属性的具体使用
2019/04/14 Javascript
vue ssr+koa2构建服务端渲染的示例代码
2020/03/23 Javascript
JavaScript常用工具函数大全
2020/05/06 Javascript
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
Python numpy生成矩阵、串联矩阵代码分享
2017/12/04 Python
Python实现破解12306图片验证码的方法分析
2017/12/29 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
Python实现弹球小游戏
2020/08/01 Python
python如何对链表操作
2020/10/10 Python
python 实现批量图片识别并翻译
2020/11/02 Python
漫威玩具服装及周边商品官方购物网站:Marvel Shop
2019/05/11 全球购物
联想印度官方网上商店:Lenovo India
2019/08/24 全球购物
个人简历自我评价八例
2013/10/31 职场文书
奥巴马上海演讲稿
2014/09/10 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
阿甘正传观后感
2015/06/01 职场文书
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis
Golang日志包的使用
2022/04/20 Golang