学习过js的小伙伴会发现,我们在一些实例中用到了alert()方法、prompt()方法、prompt()方法,他们都是在屏幕上弹出一个对话框,并且在上面显示括号内的内容,使用这种方法使得页面的交互性更精彩,实际上我们经常会在进行网页浏览时简单这种类型的对话框,在用户与应用程序进行双向交流时,经常要用到对话框。

javascript的三种对话框是通过调用window对象的三个方法alert(),confirm()和prompt()来获得,可以利用这些对话框来完成js的输入和输出,实现与用户能进行交互的js代码

第一种:alert警告框

  alert()方法是这三种对话框中最容易使用的一种,她可以用来简单而明了地将alert()括号内的文本信息显示在对话框中,我们将它称为警示对话框,要显示的信息放置在括号内,该对话框上包含一个“确认”按钮,用户阅读完所显示的信息后,只需单击该按钮就可以关闭对话框。

第二种:confirm确认框

confirm()方法与alert()方法的使用十分类似,不同点是在该种对话框上除了包含一个“确认”按钮外,还有一个“取消”按钮,这种对话框称为确认对话框

第三种:prompt提示框

alert()方法和confirm()方法的使用十分类似,都是仅仅显示已有的信息,但用户不能输入自己的信息,但是prompt()可以做到这点,她不但可以显示信息,而且还提供了一个文本框要求用户使用键盘输入自己的信息,同时她还包含“确认”或“取消”两个按钮,如果用户“确认”按钮,则prompt()方法返回用户在文本框中输入的内容(是字符串类型)或者初始值(如果用户没有输入信息);如果用户单击“取消”按钮,则prompt()方法返回null,我们称这种对话框为提示框

switch_to_alert函数捕捉弹出的对话框

#! /usr/bin/env python
#coding=utf-8
from selenium import webdriver
import timedriver = webdriver.Firefox()
driver.get("xxxxxxxxxxxx")
time.sleep(3)#alert提示框
driver.find_element_by_id("alert").click()
time.sleep(3)
#定位到这个alert弹窗上
alert = driver.switch_to_alert()
print(alert.text())
#确定
alert.accept()
#取消
#alert.dismiss()#confrim确认框
driver.find_element_by_id("confirm").click()
time.sleep(3)
confirm = driver.switch_to_alert()
print(confirm.text)
confirm.accept()
#confirm.dismiss()#prompt弹框
driver.find_element_by_id("prompt").click()
time.sleep(3)
prompt = driver.switch_to_alert()
prompt.send_keys("xxxxx")
time.sleep(3)
print(prompt.text)
prompt.accept()
#prompt.dismiss()
driver.quit()

alert()、confirm()、prompt()的区别和联系:

警告框alert()

alert是警告框,只有一个按钮“确定”无返回值,警告框经常用于确保用户可以得到某些信息。当警告框出现后,用户需要点击确定按钮才能继续进行操作。语法:alert("文本")。

确认框confirm()

confirm是确认框,两个按钮,确定或者取消,返回true或false。确认框用于使用户可以验证或者接受某些信息。当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。语法:confirm("文本")

提示框prompt()

prompt是提示框,返回输入的消息,或者其默认值提示框经常用于提示用户在进入页面前输入某个值。当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。语法:prompt("文本","默认值")

转载于:https://www.cnblogs.com/R-bear/p/7468621.html

Selenium-js弹窗浮层相关推荐

  1. c#web页面显示弹窗_C#监听IE文档加载完成、弹窗、JS弹窗、页面跳转

    这个Demo在早段时间有个网友需要做一个相关方面的软件,我给做出来的.很方面,在JS弹窗监听上耗了不少时间.现在均已解决!请勿用作非法商业用途,该软件产生的后果与作者本人无关,特此声明. 由于需要对H ...

  2. cefsharp重写默认js弹窗(alert/confirm/prompt)

    1.设置js弹窗控制器 webView.JsDialogHandler = this;  //js弹窗控制 this表示本类对象,所以本类要实现IJsDialogHandler接口 2.实现IJsDi ...

  3. iOS开屏广告弹窗浮层解决方案

    转载至:https://my.oschina.net/zhxx/blog/910836 开屏广告作为app启动时映入用户眼帘的第一界面,其重要性不言而喻. 因项目中开屏广告插件中业务越来越多,原来的的 ...

  4. 前端html+css+js弹窗的实现

    近期由于项目需要,学习了一下js弹窗的实现,感觉挺简单的. html代码部分: <!doctype html> <html lang="en"> <h ...

  5. PHP,HTML,js弹窗返回上一页

    PHP,HTML,js弹窗返回上一页 PHP弹窗返回上一页 <?phpecho "<script>alert('暂无数据');window.history.back(-1) ...

  6. 纯js弹窗Dialog组件

    纯js弹窗Dialog组件 文章目录 纯js弹窗Dialog组件 1. js部分 2. css样式 3. 简单使用 4. 效果展示 1. js部分 /* eslint-disable */ const ...

  7. android拦截js弹窗,C++ 拦截 CEF 的JS 弹窗(Alert, Confirm),改造为C++的对话框

    本周主要进行了oa_web项目的统一对话框(提示框)进行改造.因为我们知道,对于嵌入到客户端的web页面,会使用JS弹出的alert,confirm 对话(提示)框, 不过这个提示框的样式是由浏览器决 ...

  8. selenium+Java处理JS弹窗

    JS弹框出现在页面主要分为3种,第一种是Alert警告弹框,该弹窗只有一个确认按钮:第二种是Confirm确认框,该弹窗有确认和取消按钮:第三种是Prompt确认框,该弹窗可以输入内容.seleniu ...

  9. python selenium 处理弹窗_Selenium自动化发布话题,以及获取window.showModalDialog()弹窗对象(Python实现)...

    折腾了一下自动化测试,找到了阿里开源的一个 uirecorder ,可以自动录制测试过程,但自定义逻辑有些麻烦 然后发现这货是基于 selenium 实现的,于是就开始折腾起了 selenium,弄出 ...

最新文章

  1. 只学python能找工作吗-只学Python能找到工作吗?老男孩Python视频教程
  2. python线下培训-Python培训是应该选择线上还是线下呢?
  3. TortoiseSVN使用方法
  4. linux下c语言利用iconv函数实现utf-8转unicode
  5. java web 静态_「Java Web」主页静态化的实现
  6. JQuery EasyUI-1.5.x-Of-Insdep-Theme后台模板
  7. html漂亮的表格模板+背景_咨询amp;金融主题响应式网站着陆页模板
  8. 二叉树插入算法的非递归版本
  9. Equals Finalize GetHashCode GetType MemberwiseClone ReferenceEquals ToString String.IsInterned
  10. BadBoy+JMeter应用过程中遇到的问题汇总
  11. PowerBuilder 开发的游戏(建房子)
  12. 2021鹏业安装算量软件常见问题整理(三)
  13. 能 ping 通但端口不通时端口可用性探测说明
  14. C语言的靠谱和C++的笑话:C语言的前景
  15. c语言:13、指针与内存
  16. 如何做好百度竞价?需清楚竞价账户的结构和核心思维
  17. 领导驾驶舱是怎么做出来的?
  18. JT1078视频服务器
  19. 平均股价的时间序列图形_求平均股价指数的公式怎么编???????
  20. 水星UD6S网卡Linux驱动,水星UD6S驱动

热门文章

  1. ecs和eks 比较_如何使用Kubernetes,EKS和NGINX为网站设置DNS
  2. 帧编码 场编码_去年,我帮助举办了40场编码活动。 这是我学到的。
  3. Apache服务器部署(2)
  4. navicat for mysql如何在更新记录时自动记录更新时间
  5. Java虚拟机的内存空间有几种
  6. Java入门学习注意事项有哪些?
  7. javascript数据结构与算法-队列
  8. c语言初学 循环 的灵活使用小案例
  9. 22.CSS边框与背景【上】
  10. --single-transaction 参数对应MyISAM引擎和InnoDB引擎