我们在浏览网页时经常会碰到各种花样的弹窗,在做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自动化-处理浏览器弹窗(转载)相关推荐

  1. python 浏览器自动化 弹窗控制_selenium 网页自动化 - 在访问一个网页时弹出的浏览器窗口,我该如何处理?...

    特别鸣谢 本文来自柠檬班-python 自动化第 25 期 铃铛同学 在做作业时遇到的问题,并提供的解决方案! 特别感谢铃铛同学.如果你是柠檬班的学生,热烈欢迎你来投稿技术文章哦! 前言 相信大家在使 ...

  2. python怎么用excel-用Python控制Excel实现自动化办公,手把手教你

    1.安装 2.操作一个简单的Excel文档 操作注释及代码: 操作完成后,数据存储结果如下: 3. 操作简单Excel文档并添加数据格式: PS:;粉丝的福利:最新的python精品.教.程,自己去小 ...

  3. python自动化弹框_Selenium2+python自动化16-alert\confirm\prompt

    id = "prompt" value = "prompt" type = "button" onclick = "var nam ...

  4. 好好学python·运算符和流程控制

    运算符和流程控制 运算符类型 Python算术运算符 Python比较运算符 Python赋值运算符 Python位运算符 Python逻辑运算符 Python成员运算符 Python身份运算符 Py ...

  5. Python代码实现PID控制

    Python代码实现PID控制 位置式PID 增量式PID控制. 1.位置式 2.增量式 3.口诀 4.reference PID控制常用的简单分为位置式和增量式. 位置式PID 是输入的是目标位置到 ...

  6. python多线程多个cpu_为什么python的多线程不能利用多核CPU?

    为什么python的多线程不能利用多核CPU,但是咱们在写代码的时候,多线程的确是在并发,而且还比单线程快. 一.python的多线程不能利用多核CPU? 原因: 因为GIL,python只有一个GI ...

  7. python办公自动化excel_简直出神入化,教你用Python控制Excel实现自动化办公

    1.安装 简直出神入化,教你用Python控制Excel实现自动化办公 2.操作一个简单的Excel文档 操作注释及代码: 简直出神入化,教你用Python控制Excel实现自动化办公 操作完成后,数 ...

  8. python做excel自动化可视化-简直出神入化,教你用Python控制Excel实现自动化办公...

    1.安装 简直出神入化,教你用Python控制Excel实现自动化办公 2.操作一个简单的Excel文档 操作注释及代码: 简直出神入化,教你用Python控制Excel实现自动化办公 操作完成后,数 ...

  9. python excel 自动化-简直出神入化,教你用Python控制Excel实现自动化办公

    1.安装 简直出神入化,教你用Python控制Excel实现自动化办公 2.操作一个简单的Excel文档 操作注释及代码: 简直出神入化,教你用Python控制Excel实现自动化办公 操作完成后,数 ...

最新文章

  1. 计算机视觉在生物力学和运动康复中的应用和研究
  2. 如何check out Visual Studio 之外修改的文件。
  3. 实现手机左右滑屏效果
  4. linux 中 set,env,export,declare显示shell变量的区别
  5. 下班忘打卡了什么后果_工厂园区安装人脸识别门禁系统有什么好处?
  6. Javascript let和const
  7. matlab fdtd,fdtd(fdtd中文教程)
  8. JavaScript权威指南笔记 - 1
  9. 稳压电源的设计与制作_直流稳压电源设计
  10. php设置input时间格式,input[type='date']自定义样式与日历校验功能
  11. 使用HTML5里的classList操作CSS类
  12. Blackman 窗函数
  13. ubuntu安装JLink 驱动。终结总结
  14. 计算机科学导论2000字报告,《计算机科学导论》(节选)翻译报告
  15. 逆向Mac版WPS2019解除版本过期限制
  16. 苹果ipadmini1 主板 电路图 超清
  17. 用C语言循环码,xinxilunyubianma
  18. python模拟阴阳师抽卡
  19. .net 服务器推送信息,.net websocket服务端开发,实现消息推送功能
  20. 干货 | 手把手教你搭建一套OpenStack云平台

热门文章

  1. mysql select带字段名_关于Select * 与Select 字段名 的问题!
  2. oracle 数据树,ORACLE 树形数据
  3. 财务管理属于计算机网络,浅谈如何应用计算机网络进行财务管理
  4. 宁波华为服务器项目招聘,宁波服务器
  5. Effective C++: 05实现
  6. Web前端开发:SQL Jsp小项目(一)
  7. Visual Studio 起始页中不显示最近使用的项目的解决办法
  8. 织梦dedecms系统修改文章描述调用字数的方法
  9. 技术不牛如何才拿到国内IT巨头的Offer(转)
  10. 站内搜索--3--之Lucene.Net使用