Python爬虫之Selenium警告框(弹窗)处理


Posted in Python onDecember 04, 2020

JavaScript 有三种弹窗 Alert (只有确定按钮), Confirmation (确定,取消等按钮), Prompt (有输入对话框),而且弹出的窗口是不能通过前端工具对其进行定位的,这个时候就可以通过switch_to.alert方法来定位这个弹窗,并进行一系列的操作。

本章中用到的关键方法如下:

  • switch_to.alert:定位到警告框
  • text:获取警告框中的文字信息
  • accept():接受现有警告框(相当于确认)
  • dismiss():解散现有警告框(相当于取消)
  • send_keys('文本内容'):发送文本至警告框(适用于有输入对话框的弹窗)
  • click():鼠标点击事件(其他鼠标事件请参考Python爬虫 - Selenium(5)鼠标事件)
  • move_to_element():鼠标悬停(详情请参考Python爬虫 - Selenium(5)鼠标事件)
from selenium import webdriver
from selenium.webdriver import ActionChains
import time
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')

# 鼠标悬停至“设置”链接
link = driver.find_element_by_link_text('设置')
ActionChains(driver).move_to_element(link).perform()
time.sleep(2) #睡两秒,看一下效果

# 打开搜索设置
driver.find_element_by_link_text("搜索设置").click()
time.sleep(2) #睡两秒,看一下效果

# 保存设置
driver.find_element_by_class_name("prefpanelgo").click()
time.sleep(2) #睡两秒,看一下效果

# 定位警告框
alert = driver.switch_to.alert
print(alert.text) # 打印警告框内容
#alert.send_keys('输入内容') #此测试网站不是可输入类型的弹窗,先注释掉
alert.accept() #接受现有警告框,相当于确认
#alert.dismiss() #解散现有警告框,相当于取消
time.sleep(2) #睡两秒,看一下效果

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操作Elasticsearch数据索引的教程
Apr 08 Python
Python入门_条件控制(详解)
May 16 Python
Python语言描述最大连续子序列和
Dec 05 Python
Python排序搜索基本算法之希尔排序实例分析
Dec 09 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
Feb 26 Python
windows下python虚拟环境virtualenv安装和使用详解
Jul 16 Python
Python和Sublime整合过程图示
Dec 25 Python
使用celery和Django处理异步任务的流程分析
Feb 19 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
Feb 29 Python
Python-split()函数实例用法讲解
Dec 18 Python
python - asyncio异步编程
Apr 06 Python
python中sys模块的介绍与实例
Apr 17 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
Dec 04 #Python
Python爬虫之Selenium多窗口切换的实现
Dec 04 #Python
Python爬虫之Selenium实现键盘事件
Dec 04 #Python
python 爬虫请求模块requests详解
Dec 04 #Python
Python爬虫之Selenium鼠标事件的实现
Dec 04 #Python
Selenium 配置启动项参数的方法
Dec 04 #Python
Python爬虫逆向分析某云音乐加密参数的实例分析
Dec 04 #Python
You might like
队列在编程中的实际应用(php)
2010/09/04 PHP
第三章 php操作符与控制结构代码
2011/12/30 PHP
PHP优于Node.js的五大理由分享
2012/09/15 PHP
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
php中Snoopy类用法实例
2015/06/19 PHP
PHP实现C#山寨ArrayList的方法
2015/07/16 PHP
Laravel中任务调度console使用方法小结
2017/05/07 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
2019/01/10 PHP
基于jquery的时间段实现代码
2012/08/02 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
2013/09/18 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
javascript中setInterval的用法
2015/07/19 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
2015/08/26 Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
2015/09/15 Javascript
原生 JS Ajax,GET和POST 请求实例代码
2016/06/08 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
Vue-router路由判断页面未登录跳转到登录页面的实例
2017/10/26 Javascript
详解基于Wepy开发小程序插件(推荐)
2019/08/01 Javascript
vue使用原生swiper代码实例
2020/02/05 Javascript
[01:33:07]VGJ.T vs Newbee Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python实现批量检测HTTP服务的状态
2016/10/27 Python
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
恢复百度云盘本地误删的文件脚本(简单方法)
2017/10/21 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
Django中多种重定向方法使用详解
2019/07/17 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
Python3.7实现验证码登录方式代码实例
2020/02/14 Python
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
伦敦所有西区剧院演出官方票务代理:Theatre Tickets Direct
2017/05/26 全球购物
团支书的期末学习总结自我评价
2013/11/01 职场文书
毕业生个人总结
2015/02/28 职场文书