在WebDriver中要处理JS生成的alert、confirm以及prompt,需要使用到switch_to_alert()定位到alert/confirm/prompt,然后再使用text、accept()、dissmiss()、send_keys()等方法进行操作。

text:获得alert/confirm/prompt中的文本信息

accept():接受警告框

dissmiss():关闭警告框

send_keys():发送文本信息到警告框

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import  Keys
dr = webdriver.Chrome()
dr.maximize_window()
dr.implicitly_wait(10)
dr.get('https://www.baidu.com')sz = dr.find_element_by_link_text('设置')#鼠标悬浮在设置按钮上
ActionChains(dr).move_to_element(sz).perform()dr.find_element_by_link_text('搜索设置').click()
sst = dr.find_element_by_class_name('prefpanelgo')#保存设置按钮
sst.send_keys(Keys.ENTER)dr.switch_to_alert().send_keys()
dr.close()

代码是在百度首页,悬停在设置按钮上,然后打开搜索设置,点击保存按钮后,接受弹出的警告框。

用Chrome自带的开发者工具的时候,直接用定位的按钮去点设置下的搜索设置,下拉菜单会出不来,可以先用鼠标点到下拉菜单中的搜索设置,然后再用定位按钮的快捷键:Ctrl+Shift+C去定位

在点击保存设置按钮的时候,直接使用click()会报错,一种像上面代码,通过键盘的Enter按键来代替。另一种就是time.sleep()几秒,然后再click()。好像是有个透明的div要加载的原因。

switch_to_alert(),PyCharm提示这不是最新的方法,最新的是switch_to.alert(),不过最新的貌似用了没反应。

转载于:https://www.cnblogs.com/myal/p/9389249.html

python3+selenium入门12-警告框处理相关推荐

  1. python3+selenium入门08-鼠标事件

    使用click()可以模拟鼠标的左键点击事件,现在的web页面中有很多其他的鼠标交互方式,比如鼠标右击.双击.悬停.鼠标拖放等功能.在WebDriver中,将这些关于鼠标操作的方法封装在ActionC ...

  2. Bootstrap入门(二十一)组件15:警告框

    Bootstrap入门(二十一)组件15:警告框 通过这些简单.灵活的进度条,为当前工作流程或动作提供实时反馈. 进度条组件使用了 CSS3 的 transition 和 animation 属性来完 ...

  3. Bootstrap入门(三十)JS插件7:警告框

    Bootstrap入门(三十)JS插件7:警告框 通过这个插件可以为警告信息添加点击以及消失的功能. 当使用一个.close按钮,它必须是第一个子元素.alert-dismissible,并没有文字内 ...

  4. selenium 警告框处理

    text: 返回 alert, confirm, prompt 中文字信息 accept(): 关闭现有的警告框 dismis(): 解散现有的警告框 send_key(): 可在警告框输入 from ...

  5. python弹出警告框_selenium+webdriver+python 中警告框的处理方法

    在自动化测试过程中,经常会遇到弹出警告框的情况,如图所示: 在 WebDriver 中处理 JavaScript 所生成的 alert.confirm 以及 prompt 是很简单的.具体做法是使用 ...

  6. Python3快速入门(十四)——Pandas数据读取

    Python3快速入门(十四)--Pandas数据读取 一.DataFrame IO 1.CSV文件 pandas.read_csv(filepath_or_buffer, na_values='NA ...

  7. python3菜鸟教程-总算理解python3中文入门教程

    为了提高模块加载的速度,每个模块都会在__pycache__文件夹中放置该模块的预编译模块,命名为module.version.pyc,version是模块的预编译版本编码,一般都包含Python的版 ...

  8. 使用 JS 关闭警告框及监听自定义事件(amaze ui)

    使用 JS 关闭警告框及监听自定义事件(amaze ui) 一.总结 1.jquery匿名函数:第8行,jquery匿名函数,$(function(){});,有没有很简单,只是少了jquery的前面 ...

  9. Bootstrap组件_警告框

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  10. Swift - 操作表(UIActionSheel)的用法,也叫底部警告框

    1,下面创建一个操作表(或叫底部警告框)并弹出显示 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class ViewController: UIViewC ...

最新文章

  1. 微信公众号开发Django-网页授权
  2. 百度的TSDB——可针对tag查询,应该类似kairosDB
  3. 为什么c语言2的n次方减一,计算2的N次方........有什么错吗?
  4. [转]Python中多线程与多进程中的数据共享问题!
  5. Facebook 有序队列服务设计原理和高性能浅析
  6. ACT的摘要可以告诉我们的内容
  7. 【待完善】MongoDB - 数据模型
  8. javascript怎么开启详细教程
  9. 一文读懂ICS工业控制系统架构
  10. Android开发英语单词积累
  11. 02_制定自己的学习计划
  12. uni-app最新获取微信头像方法getUserProfile?
  13. C++ 值传递、指针传递、引用传递详解
  14. Python读写串口编程
  15. SpaceSniffer
  16. ssh:使用ssh链接服务器的时候报错 Add correct host key in /root/.ssh/known_hosts to get rid of this message
  17. 界面控件DevExtreme——轻松将TreeList数据导出为PDF格式
  18. 在PowerBI中使用R的限制
  19. blender导入OBJ缺失顶点颜色的解决办法
  20. layer.load使用

热门文章

  1. Python的单元测试工具——doctest
  2. SpringMVC 异常记录
  3. 再议动态二维数组,通过一句表达式完成矩阵的转置
  4. Hive静态分区和动态分区
  5. ASP .NET CORE MVC 部署Windows 系统上 IIS具体步骤---.Net Core 部署到 IIS位系统中的步骤...
  6. 使用ActiveMQ 传输文件 以及使用Jetty搭建内嵌文件服务器
  7. [topcoder]AvoidRoads
  8. hdu2534-Score
  9. 收集一些非常好用常用的用户函数。分享给大家参考。
  10. C#中判断字符是否为中文