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 相关文章推荐
jupyter安装小结
Mar 13 Python
尝试用最短的Python代码来实现服务器和代理服务器
Jun 23 Python
Python读取一个目录下所有目录和文件的方法
Jul 15 Python
Python微信公众号开发平台
Jan 25 Python
Python中max函数用于二维列表的实例
Apr 03 Python
Python实现 版本号对比功能的实例代码
Apr 18 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
Oct 24 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
May 23 Python
python如何使用代码运行助手
Jul 03 Python
Python如何截图保存的三种方法(小结)
Sep 01 Python
Python使用for生成列表实现过程解析
Sep 22 Python
Python中的 No Module named ***问题及解决
Jul 23 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二分查找二种实现示例
2014/03/12 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
2014/07/08 PHP
PHP中strtr字符串替换用法详解
2014/11/26 PHP
php图形jpgraph操作实例分析
2017/02/22 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
js版本A*寻路算法
2006/12/22 Javascript
js 火狐下取本地路径实现思路
2013/04/02 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
jQuery中removeAttr()方法用法实例
2015/01/05 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
JS实现黑色大气的二级导航菜单效果
2015/09/18 Javascript
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
BootStrap table使用方法分析
2016/11/08 Javascript
JS异步加载的三种实现方式
2017/03/16 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
jquery 输入框查找关键字并提亮颜色的实例代码
2018/01/23 jQuery
Vue-axios-post数据后端接不到问题解决
2020/01/09 Javascript
Vant 在vue-cli 4.x中按需加载操作
2020/11/05 Javascript
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
Python md5与sha1加密算法用法分析
2017/07/14 Python
python安装Scrapy图文教程
2017/08/14 Python
python实现简单登陆流程的方法
2018/04/22 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
Django之模型层多表操作的实现
2019/01/08 Python
cProfile Python性能分析工具使用详解
2019/07/22 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
2019/08/29 Python
Python 转移文件至云对象存储的方法
2021/02/07 Python
Windows和Linux动态库应用异同
2016/04/17 面试题
Unix如何在一行中运行多个命令
2015/05/29 面试题
2014年机关工会工作总结
2014/12/19 职场文书
自主招生学校推荐信范文
2015/03/26 职场文书
银行客户经理岗位职责
2015/04/09 职场文书
《自然之道》读后感3篇
2019/12/17 职场文书