python 浏览器自动化 弹窗控制_Selenium2+Python自动化-处理浏览器弹窗(转载)
我们在浏览网页时经常会碰到各种花样的弹窗,在做UI自动化测试的时候势必要处理这些弹窗,这里就介绍一下目前前端界两种弹窗的处理方法。
一、alert弹窗
这种弹窗是最简单的一种,Selenium里有自带的方法来处理它,用switch_to.alert先定位到弹窗,然后使用一系列方法来操作:
accept - 点击【确认】按钮
dismiss - 点击【取消】按钮(如有按钮)
send_keys - 输入内容(如有输入框)
我们用以下代码就能实现切换至弹窗并点击【确定】按钮的效果:
al = driver.switch_to_alert()
al.accept()
这里这个switch_to_alert()其实是旧写法,照理应该是用switch_to.alert(),但是新写法却会报错,目前猜测是版本问题,可能不支持新写法,这里就先用旧写法。
以下是完整代码,为了运行的时候看得清楚,我加了两处等待:
# encoding:utf-8
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("http://www.runoob.com/try/try.php?filename=tryjs_alert")
driver.switch_to.frame("iframeResult")
driver.find_element_by_xpath("html/body/input").click()
time.sleep(1)
al = driver.switch_to_alert()
time.sleep(1)
al.accept()
二、自定义弹窗
由于alert弹窗不美观,现在大多数网站都会使用自定义弹窗,使用Selenium自带的方法就驾驭不了了,此时就要搬出JS大法。这里举一个新世界教育官网首页的例子:
大家能看到,图中的这种弹窗就是现在主流的表现形式,处理这种弹窗可以利用HTML DOM Style 对象,有一个display属性,可以设置元素如何被显示,
js = 'document.getElementById("doyoo_monitor").style.display="none";'
完整代码如下:
# encoding:utf-8
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("http://sh.xsjedu.org/")
time.sleep(1)
js = 'document.getElementById("doyoo_monitor").style.display="none";'
driver.execute_script(js)
是不是既简单又高效~
python 浏览器自动化 弹窗控制_Selenium2+Python自动化-处理浏览器弹窗(转载)相关推荐
- python 浏览器自动化 弹窗控制_selenium 网页自动化 - 在访问一个网页时弹出的浏览器窗口,我该如何处理?...
特别鸣谢 本文来自柠檬班-python 自动化第 25 期 铃铛同学 在做作业时遇到的问题,并提供的解决方案! 特别感谢铃铛同学.如果你是柠檬班的学生,热烈欢迎你来投稿技术文章哦! 前言 相信大家在使 ...
- python怎么用excel-用Python控制Excel实现自动化办公,手把手教你
1.安装 2.操作一个简单的Excel文档 操作注释及代码: 操作完成后,数据存储结果如下: 3. 操作简单Excel文档并添加数据格式: PS:;粉丝的福利:最新的python精品.教.程,自己去小 ...
- python自动化弹框_Selenium2+python自动化16-alert\confirm\prompt
id = "prompt" value = "prompt" type = "button" onclick = "var nam ...
- 好好学python·运算符和流程控制
运算符和流程控制 运算符类型 Python算术运算符 Python比较运算符 Python赋值运算符 Python位运算符 Python逻辑运算符 Python成员运算符 Python身份运算符 Py ...
- Python代码实现PID控制
Python代码实现PID控制 位置式PID 增量式PID控制. 1.位置式 2.增量式 3.口诀 4.reference PID控制常用的简单分为位置式和增量式. 位置式PID 是输入的是目标位置到 ...
- python多线程多个cpu_为什么python的多线程不能利用多核CPU?
为什么python的多线程不能利用多核CPU,但是咱们在写代码的时候,多线程的确是在并发,而且还比单线程快. 一.python的多线程不能利用多核CPU? 原因: 因为GIL,python只有一个GI ...
- python办公自动化excel_简直出神入化,教你用Python控制Excel实现自动化办公
1.安装 简直出神入化,教你用Python控制Excel实现自动化办公 2.操作一个简单的Excel文档 操作注释及代码: 简直出神入化,教你用Python控制Excel实现自动化办公 操作完成后,数 ...
- python做excel自动化可视化-简直出神入化,教你用Python控制Excel实现自动化办公...
1.安装 简直出神入化,教你用Python控制Excel实现自动化办公 2.操作一个简单的Excel文档 操作注释及代码: 简直出神入化,教你用Python控制Excel实现自动化办公 操作完成后,数 ...
- python excel 自动化-简直出神入化,教你用Python控制Excel实现自动化办公
1.安装 简直出神入化,教你用Python控制Excel实现自动化办公 2.操作一个简单的Excel文档 操作注释及代码: 简直出神入化,教你用Python控制Excel实现自动化办公 操作完成后,数 ...
最新文章
- 计算机视觉在生物力学和运动康复中的应用和研究
- 如何check out Visual Studio 之外修改的文件。
- 实现手机左右滑屏效果
- linux 中 set,env,export,declare显示shell变量的区别
- 下班忘打卡了什么后果_工厂园区安装人脸识别门禁系统有什么好处?
- Javascript let和const
- matlab fdtd,fdtd(fdtd中文教程)
- JavaScript权威指南笔记 - 1
- 稳压电源的设计与制作_直流稳压电源设计
- php设置input时间格式,input[type='date']自定义样式与日历校验功能
- 使用HTML5里的classList操作CSS类
- Blackman 窗函数
- ubuntu安装JLink 驱动。终结总结
- 计算机科学导论2000字报告,《计算机科学导论》(节选)翻译报告
- 逆向Mac版WPS2019解除版本过期限制
- 苹果ipadmini1 主板 电路图 超清
- 用C语言循环码,xinxilunyubianma
- python模拟阴阳师抽卡
- .net 服务器推送信息,.net websocket服务端开发,实现消息推送功能
- 干货 | 手把手教你搭建一套OpenStack云平台
热门文章
- mysql select带字段名_关于Select * 与Select 字段名 的问题!
- oracle 数据树,ORACLE 树形数据
- 财务管理属于计算机网络,浅谈如何应用计算机网络进行财务管理
- 宁波华为服务器项目招聘,宁波服务器
- Effective C++: 05实现
- Web前端开发:SQL Jsp小项目(一)
- Visual Studio 起始页中不显示最近使用的项目的解决办法
- 织梦dedecms系统修改文章描述调用字数的方法
- 技术不牛如何才拿到国内IT巨头的Offer(转)
- 站内搜索--3--之Lucene.Net使用