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开发vim插件及心得分享
Nov 04 Python
Python去除列表中重复元素的方法
Mar 20 Python
浅谈MySQL中的触发器
May 05 Python
python计算一个序列的平均值的方法
Jul 11 Python
Python 列表排序方法reverse、sort、sorted详解
Jan 22 Python
Python实现的生产者、消费者问题完整实例
May 30 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
Jul 19 Python
Django中日期处理注意事项与自定义时间格式转换详解
Aug 06 Python
Python使用pydub库对mp3与wav格式进行互转的方法
Jan 10 Python
Python 日志logging模块用法简单示例
Oct 18 Python
pytorch 实现查看网络中的参数
Jan 06 Python
python opencv通过4坐标剪裁图片
Jun 05 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控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
PHP学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
php获取Google机器人访问足迹的方法
2015/04/15 PHP
PHP如何将XML转成数组
2016/04/04 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
PHP常见加密函数用法示例【crypt与md5】
2019/01/27 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
非阻塞动态加载javascript广告实现代码
2010/11/17 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
jQuery绑定事件的几种实现方式
2016/05/09 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
2016/10/25 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
jquery+ajaxform+springboot控件实现数据更新功能
2018/01/22 jQuery
关于layui 弹出层一闪而过就消失的解决方法
2019/09/09 Javascript
node.js开发辅助工具nodemon安装与配置详解
2020/02/06 Javascript
详解Python中的__new__()方法的使用
2015/04/09 Python
Python文本处理之按行处理大文件的方法
2018/04/09 Python
Python使用sort和class实现的多级排序功能示例
2018/08/15 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
Python3安装psycopy2以及遇到问题解决方法
2019/07/03 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
2019/07/04 Python
pytorch索引查找 index_select的例子
2019/08/18 Python
Python递归调用实现数字累加的代码
2020/02/25 Python
Python 高效编程技巧分享
2020/09/10 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
瑜伽国际:Yoga International
2018/04/18 全球购物
Public Desire美国/加拿大:全球性的在线鞋类品牌
2018/12/17 全球购物
经济管理专业毕业生推荐信
2013/11/11 职场文书
临床医学专业学生的自我评价分享
2013/11/21 职场文书
项目合作意向书模板
2014/07/29 职场文书
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python
字节飞书面试promise.all实现示例
2022/06/16 Javascript