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 相关文章推荐
kNN算法python实现和简单数字识别的方法
Nov 18 Python
python编写暴力破解FTP密码小工具
Nov 19 Python
python制作一个桌面便签软件
Aug 09 Python
python类:class创建、数据方法属性及访问控制详解
Jul 25 Python
Python中index()和seek()的用法(详解)
Apr 27 Python
Python实现的破解字符串找茬游戏算法示例
Sep 25 Python
Tensorflow实现卷积神经网络的详细代码
May 24 Python
Python Socket编程之多线程聊天室
Jul 28 Python
Python同步遍历多个列表的示例
Feb 19 Python
Python综合应用名片管理系统案例详解
Jan 03 Python
python如何编写win程序
Jun 08 Python
Python Selenium实现无可视化界面过程解析
Aug 25 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
星际争霸, 教主第一视角, ZvT经典龙蛇演义
2020/03/02 星际争霸
re0第二季蕾姆被制作组打入冷宫!艾米莉亚女主扶正,原因唏嘘
2020/04/02 日漫
PHP基于imap获取邮件实例
2014/11/11 PHP
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
php 二维数组时间排序实现代码
2016/11/19 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
htm调用JS代码
2007/03/15 Javascript
ASP小贴士/ASP Tips javascript tips可以当桌面
2009/12/10 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
2013/09/10 Javascript
JS不间断向上滚动效果代码
2013/12/25 Javascript
jq实现酷炫的鼠标经过图片翻滚效果
2014/03/12 Javascript
手动用webpack搭建第一个ReactApp的示例
2018/04/11 Javascript
自己动手封装一个React Native多级联动
2018/09/19 Javascript
详解React服务端渲染从入门到精通
2019/03/28 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
Layui动态生成select下拉选择框不显示的解决方法
2019/09/24 Javascript
vue实现路由懒加载的3种方法示例
2020/09/01 Javascript
[02:01]2018完美盛典-开场舞《双子星》
2018/12/16 DOTA
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
python实现用于测试网站访问速率的方法
2015/05/26 Python
Python字符串处理实现单词反转
2017/06/14 Python
Python模拟用户登录验证
2017/09/11 Python
浅析PyTorch中nn.Linear的使用
2019/08/18 Python
Expected conditions模块使用方法汇总代码解析
2020/08/13 Python
Python CategoricalDtype自定义排序实现原理解析
2020/09/11 Python
python 三种方法实现对Excel表格的读写
2020/11/19 Python
高街生活方式全球在线商店:AZBRO
2017/08/26 全球购物
智能室内花园:Click & Grow
2021/01/29 全球购物
公司员工的自我评价范例
2013/11/01 职场文书
法学专业毕业生求职信
2014/06/12 职场文书
广告艺术设计专业自荐书
2014/07/08 职场文书
锅炉工岗位职责
2015/02/13 职场文书
浅谈Redis在直播场景的实践方案
2021/04/27 Redis
javascript canvas实现雨滴效果
2021/06/09 Javascript
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers