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 相关文章推荐
使用wxpython实现的一个简单图片浏览器实例
Jul 10 Python
python实现2048小游戏
Mar 30 Python
Python制作爬虫采集小说
Oct 25 Python
CentOS下使用yum安装python-pip失败的完美解决方法
Aug 16 Python
Python机器学习之决策树算法实例详解
Dec 06 Python
pygame游戏之旅 调用按钮实现游戏开始功能
Nov 21 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
Dec 26 Python
对Python捕获控制台输出流的方法详解
Jan 07 Python
分析经典Python开发工程师面试题
Apr 08 Python
Python实现把多维数组展开成DataFrame
Nov 30 Python
浅谈matplotlib默认字体设置探索
Feb 03 Python
pytorch 运行一段时间后出现GPU OOM的问题
Jun 02 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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
第二节 对象模型 [2]
2006/10/09 PHP
PHP脚本的10个技巧(5)
2006/10/09 PHP
试用php中oci8扩展
2015/06/18 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
心扬JS分页函数代码
2010/09/10 Javascript
jQuery中andSelf()方法用法实例
2015/01/08 Javascript
面向切面编程(AOP)的理解
2015/05/01 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
jQuery实现的网页换肤效果示例
2016/09/20 Javascript
bootstrap daterangepicker汉化以及扩展功能
2017/06/15 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
node实现登录图片验证码的示例代码
2018/04/20 Javascript
微信小程序控制台提示warning:Now you can provide attr "wx:key" for a "wx:for" to improve performance解决方法
2019/02/21 Javascript
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
2019/04/30 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
2019/10/26 Javascript
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
python将文本转换成图片输出的方法
2015/04/28 Python
Python中的条件判断语句基础学习教程
2016/02/07 Python
Python打包文件夹的方法小结(zip,tar,tar.gz等)
2016/09/18 Python
Pycharm导入Python包,模块的图文教程
2018/06/13 Python
利用python修改json文件的value方法
2018/12/31 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
python map比for循环快在哪
2020/09/21 Python
财务会计专业毕业生自荐信
2013/10/02 职场文书
装潢设计专业推荐信模板
2013/11/26 职场文书
清明节扫墓活动方案
2014/03/02 职场文书
教师节感恩老师演讲稿
2014/08/28 职场文书
小学生九一八纪念日83周年演讲稿500字
2014/09/17 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS
服务器SVN搭建图文安装过程
2022/06/21 Servers
HttpClient实现表单提交上传文件
2022/08/14 Java/Android