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实现面向对像的ASP程序实例
Nov 10 Python
Python正则表达式使用范例分享
Dec 04 Python
Python 40行代码实现人脸识别功能
Apr 02 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
Mar 14 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
Jul 11 Python
Python设计模式之抽象工厂模式原理与用法详解
Jan 15 Python
PyQt+socket实现远程操作服务器的方法示例
Aug 22 Python
利用PyQt中的QThread类实现多线程
Feb 18 Python
简单了解django处理跨域请求最佳解决方案
Mar 25 Python
Python 数据的累加与统计的示例代码
Aug 03 Python
利用python绘制中国地图(含省界、河流等)
Sep 21 Python
Python pymysql模块安装并操作过程解析
Oct 13 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
使用TinyButStrong模板引擎来做WEB开发
2007/03/16 PHP
php计算数组不为空元素个数的方法
2014/01/27 PHP
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
jQuery.extend 函数的详细用法
2012/06/27 Javascript
关于js遍历表格的实例
2013/07/10 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
JS实现点击按钮获取页面高度的方法
2015/11/02 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
2016/04/05 Javascript
jQuery实现可兼容IE6的遮罩功能详解
2017/09/19 jQuery
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
jQuery实现网页拼图游戏
2020/04/22 jQuery
vue项目前端微信JSAPI与外部H5支付相关实现过程及常见问题
2020/04/14 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
Vue+Java 通过websocket实现服务器与客户端双向通信操作
2020/09/22 Javascript
[02:29]大剑、皮鞭、女装,这届DOTA2勇士令状里都有
2020/07/17 DOTA
python操作xml文件详细介绍
2014/06/09 Python
在Python中封装GObject模块进行图形化程序编程的教程
2015/04/14 Python
Python中IPYTHON入门实例
2015/05/11 Python
详解Python map函数及Python map()函数的用法
2017/11/16 Python
Python语言描述连续子数组的最大和
2018/01/04 Python
python列表list保留顺序去重的实例
2018/12/14 Python
python文本数据处理学习笔记详解
2019/06/17 Python
python 中的[:-1]和[::-1]的具体使用
2020/02/13 Python
vue学习笔记之动态组件和v-once指令简单示例
2020/02/29 Python
django实现日志按日期分割
2020/05/21 Python
css3学习心得分享
2013/08/19 HTML / CSS
Hotels.com日本:国外和海外住宿,酒店预订
2019/12/13 全球购物
酒店前台接待岗位职责
2013/12/03 职场文书
小学生演讲稿
2014/01/12 职场文书
巧克力蛋糕店创业计划书
2014/01/14 职场文书
一名老师的自我评价
2014/02/07 职场文书
高效课堂标语
2014/06/26 职场文书
vue组件冲突之引用另一个组件出现组件不显示的问题
2022/04/13 Vue.js
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python