Python爬虫之Selenium多窗口切换的实现


Posted in Python onDecember 04, 2020

前言:在页面操作过程中有时候点击某个链接会弹出新的窗口,但由于Selenium的所有操作都是在第一个打开的页面进行的,这时就需要主机切换到新打开的窗口上进行操作。WebDriver提供了switch_to.window()方法,可以实现在不同的窗口之间切换。 以百度首页和百度注册页为例,在两个窗口之间的切换。

本章中用到的关键方法如下:

  • current_window_handle:获得当前窗口句柄
  • window_handles:返回所有窗口的句柄到当前会话
  • switch_to.window():用于切换到相应的窗口

跳转至注册页面,然后获取所有页面的句柄,并打印各个页面的title

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")

time.sleep(2) #睡两秒,看一下效果

driver.find_element_by_link_text('登录').click()

time.sleep(2) #睡两秒,看一下效果

driver.find_element_by_link_text("立即注册").click()

time.sleep(2) #睡两秒,看一下效果

# 获得当前窗口句柄
sreach_windows = driver.current_window_handle

# 获得当前所有打开的窗口的句柄
all_handles = driver.window_handles
for handle in all_handles:
 if handle != sreach_windows:
  driver.switch_to.window(handle)
  print(driver.title)
 else:
  print('当前页面title:%s'%driver.title)

driver.quit()

Selenium文集传送门:

标题 简介
Python爬虫 - Selenium(1)安装和简单使用 详细介绍Selenium的依赖环境在Windows和Centos7上的安装及简单使用
Python爬虫 - Selenium(2)元素定位和WebDriver常用方法 详细介绍定位元素的8种方式并配合点击和输入、提交、获取断言信息等方法的使用
Python爬虫 - Selenium(3)控制浏览器的常用方法 详细介绍自定义浏览器窗口大小或全屏、控制浏览器后退、前进、刷新浏览器等方法的使用
Python爬虫 - Selenium(4)配置启动项参数 详细介绍Selenium启动项参数的配置,其中包括无界面模式、浏览器窗口大小设置、浏览器User-Agent (请求头)等等
Python爬虫 - Selenium(5)鼠标事件 详细介绍鼠标右击、双击、拖动、鼠标悬停等方法的使用
Python爬虫 - Selenium(6)键盘事件 详细介绍键盘的操作,几乎包含所有常用按键以及组合键
Python爬虫 - Selenium(7)多窗口切换 详细介绍Selenium是如何实现在不同的窗口之间自由切换
Python爬虫 - Selenium(8)frame/iframe表单嵌套页面 详细介绍如何从当前定位的主体切换为frame/iframe表单的内嵌页面中
Python爬虫 - Selenium(9)警告框(弹窗)处理 详细介绍如何定位并处理多类警告弹窗
Python爬虫 - Selenium(10)下拉框处理 详细介绍如何灵活的定位并处理下拉框
Python爬虫 - Selenium(11)文件上传 详细介绍如何优雅的通过send_keys()指定文件进行上传
Python爬虫 - Selenium(12)获取登录Cookies,并添加Cookies自动登录 详细介绍如何获取Cookies和使用Cookies进行自动登录
Python爬虫 - Selenium(13)设置元素等待 详细介绍如何优雅的设置元素等待时间,防止程序运行过快而导致元素定位失败
Python爬虫 - Selenium(14)窗口截图 详细介绍如何使用窗口截图
Python爬虫 - Selenium(15)关闭浏览器 详细介绍两种关闭窗口的区别

到此这篇关于Python爬虫之Selenium多窗口切换的实现的文章就介绍到这了,更多相关Selenium多窗口切换内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python编码时应该注意的几个情况
Mar 04 Python
python3访问sina首页中文的处理方法
Feb 24 Python
理解python中生成器用法
Dec 20 Python
基于Python List的赋值方法
Jun 23 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
python分数表示方式和写法
Jun 26 Python
Python 获取windows桌面路径的5种方法小结
Jul 15 Python
Python split() 函数拆分字符串将字符串转化为列的方法
Jul 16 Python
Python3常见函数range()用法详解
Dec 30 Python
Python图像处理库PIL的ImageFont模块使用介绍
Feb 26 Python
Python 数据的累加与统计的示例代码
Aug 03 Python
Python pyecharts案例超市4年数据可视化分析
Aug 14 Python
Python爬虫之Selenium实现键盘事件
Dec 04 #Python
python 爬虫请求模块requests详解
Dec 04 #Python
Python爬虫之Selenium鼠标事件的实现
Dec 04 #Python
Selenium 配置启动项参数的方法
Dec 04 #Python
Python爬虫逆向分析某云音乐加密参数的实例分析
Dec 04 #Python
浅谈Selenium 控制浏览器的常用方法
Dec 04 #Python
详解Selenium 元素定位和WebDriver常用方法
Dec 04 #Python
You might like
php在线打包程序源码
2008/07/27 PHP
php启用zlib压缩文件的配置方法
2013/06/12 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
Yii框架getter与setter方法功能与用法分析
2019/10/22 PHP
用YUI做了个标签浏览效果
2007/02/20 Javascript
javascript取消文本选定的实现代码
2010/11/14 Javascript
JS滚轮事件onmousewheel使用介绍
2013/11/01 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
如何使用jquery easyui创建标签组件
2015/11/18 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
jQuery多个版本和其他js库冲突的解决方法
2016/08/11 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
IScroll那些事_当内容不足时下拉刷新的解决方法
2017/07/18 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
Node.js 中使用 async 函数的方法
2017/11/20 Javascript
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
jquery 插件重新绑定的处理方法分析
2019/11/23 jQuery
vue中的使用token的方法示例
2020/03/10 Javascript
[01:06:42]VP vs NewBee Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
Android分包MultiDex策略详解
2017/10/30 Python
利用python循环创建多个文件的方法
2018/10/25 Python
浅谈python函数调用返回两个或多个变量的方法
2019/01/23 Python
python 画二维、三维点之间的线段实现方法
2019/07/07 Python
django迁移文件migrations的实现
2020/03/31 Python
美国百年历史早餐食品供应商:Wolferman’s
2017/01/18 全球购物
英文求职信结束语大全
2013/10/26 职场文书
违反工作纪律检讨书
2014/02/15 职场文书
买卖车协议书
2014/04/21 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
师德师风剖析材料
2014/09/30 职场文书
群众路线领导班子整改方案
2014/10/25 职场文书
给老师的一封感谢信
2015/01/20 职场文书
党小组意见范文
2015/06/08 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
Pyhton模块和包相关知识总结
2021/05/12 Python
“鬼灭之刃”热度不减,其成功背后的原因是什么?
2022/03/22 日漫