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中global与nonlocal比较
Nov 21 Python
Python中的getopt函数使用详解
Jul 28 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
Dec 15 Python
Python实现按中文排序的方法示例
Apr 25 Python
详解python Todo清单实战
Nov 01 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
Python模拟百度自动输入搜索功能的实例
Feb 14 Python
Python根据当前日期取去年同星期日期
Apr 14 Python
Django继承自带user表并重写的例子
Nov 18 Python
Python编译成.so文件进行加密后调用的实现
Dec 23 Python
Python实现点云投影到平面显示
Jan 18 Python
手把手教你配置JupyterLab 环境的实现
Feb 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
探讨方法的重写(覆载)详解
2013/06/08 PHP
php实现比较全的数据库操作类
2015/06/18 PHP
thinkPHP模型初始化实例分析
2015/12/03 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
JS操作图片(增,删,改) 例子
2013/04/17 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
JQuery删除DOM节点的方法
2015/06/11 Javascript
Node.js事件驱动
2015/06/18 Javascript
JQuery控制图片由中心点逐渐放大效果
2016/06/26 Javascript
不使用script导入js文件的几种方法
2016/10/27 Javascript
详解基于Vue+Koa的pm2配置
2017/10/24 Javascript
vue-cli webpack配置文件分析
2019/05/20 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
如何正确解决VuePress本地访问出现资源报错404的问题
2020/12/03 Vue.js
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
2017/11/17 Python
Python简单实现控制电脑的方法
2018/01/22 Python
Python编程实现从字典中提取子集的方法分析
2018/02/09 Python
python多进程读图提取特征存npy
2019/05/21 Python
Python 处理文件的几种方式
2019/08/23 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
2019/12/26 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
2020/01/03 Python
Python通过Pillow实现图片对比
2020/04/29 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
测绘工程系学生的自我评价
2013/11/30 职场文书
宿舍使用违章电器检讨书
2014/01/12 职场文书
公司活动邀请函
2014/01/24 职场文书
环卫工人先进事迹材料
2014/06/02 职场文书
雨花台导游词
2015/02/06 职场文书
教师廉洁自律个人总结
2015/02/10 职场文书
小学体育课教学反思
2016/02/16 职场文书
JS创建或填充任意长度数组的小技巧汇总
2021/10/24 Javascript