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 3实战爬虫之爬取京东图书的图片详解
Oct 09 Python
python爬虫爬取快手视频多线程下载功能
Feb 28 Python
Python从使用线程到使用async/await的深入讲解
Sep 16 Python
python matplotlib画图库学习绘制常用的图
Mar 19 Python
Python 监测文件是否更新的方法
Jun 10 Python
Python实现EXCEL表格的排序功能示例
Jun 25 Python
python 实现12bit灰度图像映射到8bit显示的方法
Jul 08 Python
使用python socket分发大文件的实现方法
Jul 08 Python
tornado+celery的简单使用详解
Dec 21 Python
Python中的 ansible 动态Inventory 脚本
Jan 19 Python
如何用python免费看美剧
Aug 11 Python
python如何绘制疫情图
Sep 16 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
Access数据库导入Mysql的方法之一
2006/10/09 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
2014/08/15 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
2014/11/22 PHP
php中解析带中文字符的url函数分享
2015/01/20 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
Laravel框架定时任务2种实现方式示例
2018/12/08 PHP
php中关于换行的实例写法
2019/09/26 PHP
解决JS中乘法的浮点错误的方法
2014/01/03 Javascript
jQuery写fadeTo示例代码
2014/02/21 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
2016/05/17 Javascript
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
vue.js实现含搜索的多种复选框(附源码)
2017/03/23 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
2017/10/27 Javascript
JS中精巧的自动柯里化实现方法
2017/12/12 Javascript
vue配置多页面的实现方法
2018/05/22 Javascript
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
python实现根据图标提取分类应用程序实例
2014/09/28 Python
python创建列表并给列表赋初始值的方法
2015/07/28 Python
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
2018/01/16 Python
Python编程argparse入门浅析
2018/02/07 Python
Python使用combinations实现排列组合的方法
2018/11/13 Python
python判断正负数方式
2020/06/03 Python
Pycharm无法打开双击没反应的问题及解决方案
2020/08/17 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
Python: glob匹配文件的操作
2020/12/11 Python
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
Ajax和javascript的区别
2013/07/20 面试题
2014年领导班子专项整治整改方案
2014/09/28 职场文书
幼儿园小班工作总结2015
2015/04/25 职场文书
关于倡议书的范文
2015/04/29 职场文书
python实现求纯色彩图像的边框
2021/04/08 Python
Go 语言结构实例分析
2021/07/04 Golang
Python软件包安装的三种常见方法
2022/07/07 Python
JS实现刷新网页后之前浏览位置保持不变示例详解
2022/08/14 Javascript