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开发利器之ulipad的使用实践
Mar 16 Python
Python如何快速实现分布式任务
Jul 06 Python
python读取excel表格生成erlang数据
Aug 26 Python
python实现隐马尔科夫模型HMM
Mar 25 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
May 07 Python
Python实现的个人所得税计算器示例
Jun 01 Python
Python for循环生成列表的实例
Jun 15 Python
浅析Python函数式编程
Oct 06 Python
python爬虫简单的添加代理进行访问的实现代码
Apr 04 Python
numpy np.newaxis 的实用分享
Nov 30 Python
Python中的特殊方法以及应用详解
Sep 20 Python
Python实现机器学习算法的分类
Jun 03 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查询域名状态whois的类
2006/11/25 PHP
php之static静态属性与静态方法实例分析
2015/07/30 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
Jquery插件分享之气泡形提示控件grumble.js
2014/05/20 Javascript
你所不了解的javascript操作DOM的细节知识点(一)
2015/06/17 Javascript
使用AngularJS处理单选框和复选框的简单方法
2015/06/19 Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
2016/05/21 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
利用jquery如何从json中读取数据追加到html中
2017/12/01 jQuery
在vue项目中,使用axios跨域处理
2018/03/07 Javascript
微信小程序之批量上传并压缩图片的实例代码
2018/07/05 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
2020/02/06 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
2020/07/24 Javascript
javascript实现贪吃蛇小游戏
2020/07/28 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
Python中文件遍历的两种方法
2014/06/16 Python
Python的Django框架使用入门指引
2015/04/15 Python
python读取文件名称生成list的方法
2018/04/27 Python
Python hexstring-list-str之间的转换方法
2019/06/12 Python
处理python中多线程与多进程中的数据共享问题
2019/07/28 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
pytorch三层全连接层实现手写字母识别方式
2020/01/14 Python
pytorch 模型的train模式与eval模式实例
2020/02/20 Python
Python实现手势识别
2020/10/21 Python
html5桌面通知(Web Notifications)实例解析
2014/07/07 HTML / CSS
美国现代家具网站:Design Within Reach
2018/07/19 全球购物
社区反邪教工作方案
2014/06/16 职场文书
2014年营业员工作总结
2014/11/18 职场文书
2015暑期社会实践个人总结
2015/07/13 职场文书
详解JavaScript中Arguments对象用途
2021/08/30 Javascript
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server