web应用中,经常会遇到弹框。不处理弹框,页面其他元素都是不能操作的。js弹框有3种:alert警告框、confirm确认窗口、prompt信息输入窗口。

webdriver提供了处理这3种弹框的方法。首先通过switch_to定位到弹框,然后针对弹框的不同,可以使用

accept/dismiss/text/send_keys进行处理。


用法演示

1,alert警告框

一般用于提示信息或者警告信息的展示。以百度搜索首页html,演示其用法。

from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsfrom selenium.common.exceptions import NoAlertPresentException#封装判断弹框是否出现方法def alert_is_present():    try:        driver.switch_to.alert        return True    except NoAlertPresentException:        return Falsedriver = webdriver.Chrome()driver.get('https://www.baidu.com/')driver.implicitly_wait(10)driver.maximize_window()#鼠标在设置按钮悬停set_but = driver.find_element_by_xpath('//*[@id="s-usersetting-top"]')ActionChains(driver).move_to_element(set_but).perform()#点击搜索设置driver.find_element_by_link_text('搜索设置').click()#点击保存设置driver.find_element_by_link_text('保存设置').click()#切换到警告框,并接受if alert_is_present() == True:    driver.switch_to.alert.accept()driver.quit()

2,confirm确认窗口

这个窗口包含一个【确定】和【取消】按钮,点击按钮,弹窗会返回一个布尔值。确认返回true,取消返回false,由此可以判断用户的操作。

以菜鸟工具页面展示其用法。

from selenium import webdriverfrom selenium.common.exceptions import NoAlertPresentExceptiondriver = webdriver.Firefox()driver.implicitly_wait(10)driver.get('https://c.runoob.com/codedemo/5431')driver.maximize_window()#封装判断弹框是否出现方法def alert_is_present():    try:        driver.switch_to.alert        return True    except NoAlertPresentException:        return False#点击【点我】按钮driver.switch_to.frame('iframeResult')driver.find_element_by_xpath('/html/body/button').click()#点击【取消】按钮if alert_is_present() == True:    driver.switch_to.alert.dismiss()    print('dismiss')driver.quit()

3,prompt信息输入窗口

用户可以在弹框输入字符串,点击确认后,页面会返回输入框内的字符串。

以菜鸟工具页面展示其用法。

from selenium import webdriverfrom selenium.common.exceptions import NoAlertPresentExceptiondriver = webdriver.Firefox()driver.implicitly_wait(10)driver.get('https://www.runoob.com/try/try.php?filename=tryjs_prompt')driver.maximize_window()#封装判断弹框是否出现方法def alert_is_present():    try:        driver.switch_to.alert        return True    except NoAlertPresentException:        return False#点击【点我】按钮driver.switch_to.frame('iframeResult')driver.find_element_by_xpath('/html/body/button').click()#点击【取消】按钮if alert_is_present() == True:    driver.switch_to.alert.send_keys('小蛋黄')    driver.switch_to.alert.accept()    text = driver.find_element_by_xpath('//*[@id="demo"]').text    print(text)driver.quit()

element js 包含字符_selenium3.x(10)js弹框处理相关推荐

  1. element js 包含字符_携程春招题目字符串截取和数组升维

    编程风格 简单陈述一下文中代码使用的编程风格: 使用 ES5,以避免有些在线编程平台不支持 ES6 的状况(所以在这里没有用 new Set()) Airbnb 代码规范,不使用单 var 模式 变量 ...

  2. js点击取消按钮关闭当前弹框_js关闭当前页面(窗口)的几种方式总结

    1. 不带任何提示关闭窗口的js代码 代码如下: 关闭 2.自定义提示关闭 代码如下: // 这个脚本是 ie6和ie7 通用的脚本 function custom_close(){ if (conf ...

  3. js点击取消按钮关闭当前弹框_UI设计中“取消按钮”的分析详解

    按钮,无论是在 Web 还是 App 上都被广泛地使用,而很少有设计师会注意到按钮当中的细节,导致在设计过程中出现一些低级的错误,使得用户在完成任务的过程中产生阻碍,无法顺利达成目的. 在许多优秀的产 ...

  4. JS中去除手机端的alert弹框中的关闭网页功能

    问题没有得到完全的解决,仅能解决刷新的第一次点击无关闭网页 去除关闭网页 具体代码如下 var wAlert = window.alert;window.alert = function (messa ...

  5. js室内地图开发_使用JS+Three.js+Echart开发商场室内地图客流信息统计功能(下)...

    (2)实时视频及全景漫游的实现: 首先创建实时视频的摄像头图片标注和全景漫游的360°图片标注,标注实现后可在地图上点击相应的图片标注从而显示实时视频画面或360°全景画面,画面可拖拽可放大缩小. 各 ...

  6. js室内地图开发_使用JS+Three.js+Echart开发商场室内地图客流信息统计功能

    现在的商场管理者在管理商场的同时面临着一些无法避免的问题比如:人员监管不到位.效率低下.商场同质化严重,人流量少等.发现了这些问题作为开发人员的我们怎能视而不见,我们的责任就是发现问题解决问题,提供更 ...

  7. js 正则是否包含某些字符串_js 正则包含字符

    展开全部 js 正则表达式检测是否包含特殊字符32313133353236313431303231363533e4b893e5b19e31333337396239,代码如下: var title='j ...

  8. Node.js 入门到干活,10 个优质项目就够了!

    Node.js 在很多大公司都有不错的实践,比如:淘宝.天猫 Web 版,很多页面都是在 Node 服务器上渲染的.还有各种脚手架.前端打包发布工具.构建生态的小工具,也基本都是 Node.js 编写 ...

  9. oracle 判断是否位汉字,js判断字符是否是汉字的两种方法小结

    有时需要判断一个字符是不是汉字,比如在用户输入含有中英文的内容时,需要判断是否超过规定长度就要用到.用 Javascript 判断通常有两种方法. 1.用正则表达式判断 js判断字符是否是汉字 .co ...

最新文章

  1. Python学习笔记3——三大结构:顺序,分支,循环3
  2. 宣武区政务网教育网的改造
  3. 电信运营商计费模型_5G消息年底商用?三大运营商联合推出已有手机支持
  4. 天猫11.11:搜索引擎实时秒级更新(转载)
  5. Hystrix面试 - 基于 Hystrix 信号量机制实现资源隔离
  6. SLAM - 01 - 分类
  7. 推荐一款好用的截图软件Faststone capture
  8. php如何优雅地把数组传递给前端js脚本?
  9. GeoWebCache之单独部署arcgis瓦片
  10. flask综合整理2
  11. cass软件注记的字体类型和字体大小的问题
  12. 如何突破思维局限去思考世界,去读读以下三个理论
  13. Photoshop二次开发接口介绍
  14. 网络通信优化之通信协议:如何优化RPC网络通信?
  15. python使用背景图片做词云图
  16. C Primer Plus 第六版---编程练习2
  17. 北京工业大学微机原理和c语言,北京工业大学 微机原理 实验九
  18. 2017年8月23日 星期三 --出埃及记 Exodus 29:2
  19. SQL语言和T-SQL语言简介
  20. 说一说BAPI_MATERIAL_SAVEDATA的使用过程

热门文章

  1. CF755G PolandBall and Many Other Balls(多项式/倍增fft)
  2. LOJ6053简单的函数(min_25筛)
  3. Deltix Round, Spring 2021 D. Love-Hate 随机化 + sos dp(高维前缀和)
  4. bzoj4543. [POI2014]Hotel加强版
  5. Stone Game
  6. CodeForces - 1189B Number Circle
  7. [CQOI2018] 解锁屏幕(状压dp)
  8. P6628-[省选联考 2020 B 卷] 丁香之路【欧拉回路,最小生成树】
  9. jzoj1471-Y【bitset,dp,状压】
  10. CF1200D-White Lines【二维前缀和】