Selenium成长之路-19alert/prompt/confirm弹框处理

2023-10-27

webdriver 中处理 JavaScript 所生成的 alert、confirm 以及 prompt 是很简单的。具体思路是使用 switch_to.alert()方法定位到 alert/confirm/prompt。然后使用 text/accept/dismiss/send_keys 按需进行操做。

 先来看看各个弹窗的样式:

alert弹窗:

confirm弹窗

prompt弹窗

 

再来看看Alert具体操作:

 

  .text                  返回alert/confirm/prompt中的文字信息

  .accpet            点击确认按钮

  .dismiss          点击取消按钮

  .send_keys      输入值→主要针对prompt弹窗使用

  .authenticate   验证,针对需要身份验证的alert

实例代码如下:

alert操作

 

# coding = utf-8
from selenium import  webdriver
from selenium.webdriver.common.by import By
import time
from selenium.webdriver.common.alert import Alert


driver = webdriver.Chrome()


print("---------alert操作实例-------")

url1 = "http://sahitest.com/demo/alertTest.htm"
driver.get(url=url1)
driver.maximize_window()

#定位到alert按钮
driver.find_element(By.XPATH,"//input[@id = 'b1']").click()

#通过switch_to_alert切换到alert
a1 =driver.switch_to.alert

#点击alert的确定按钮
a1.accept()
time.sleep(2)
#打印alert信息
print(a1.text)

confirm操作:

 

# coding = utf-8
from selenium import  webdriver
from selenium.webdriver.common.by import By
import time
from selenium.webdriver.common.alert import Alert

driver = webdriver.Chrome()
print("---------confirm-------")
url2 = "http://sahitest.com/demo/confirmTest.htm"
# driver= webdriver.Firefox()
driver.get(url=url2)
driver.maximize_window()

#定位到check for prompt按钮
driver.find_element(By.XPATH,"//input[@name = 'b1']").click()

#直接实例化alert对象
a2 = Alert(driver)

time.sleep(2)
print(a2.text)
# a2.accept()
a2.dismiss()
driver.quit()

prompt操作

 

# coding = utf-8
from selenium import  webdriver
from selenium.webdriver.common.by import By
import time
from selenium.webdriver.common.alert import Alert


driver = webdriver.Chrome()

print("---------prompt-------")
url3 = "http://sahitest.com/demo/promptTest.htm"
driver.maximize_window()
driver.get(url=url3)

driver.find_element(By.XPATH,"//input[@name = 'b1']").click()
time.sleep(2)

#通过switch_to.alert切换到alert
a3 = driver.switch_to.alert
print(a3.text)

#在prompt型alert中输入字符
a3.send_keys("selenium")
time.sleep(2)
a3.accept()

#页面文本框输出的信息
val = driver.find_element(By.XPATH,"//input[@name = 't1']").get_attribute('value')
time.sleep(3)
print(val)

driver.quit()

 

以上就是alert/confirm/prompt弹窗的处理方法。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Selenium成长之路-19alert/prompt/confirm弹框处理 的相关文章

  • 使用matplotlib和seaborn绘图的常用参数

    plt grid b True ls color 606060 设置网格线 b控制网格线 ls设置网格线的样式 plt tick params labelsize 20 轴数值大小 labelsize设置数值展示大小 plt ylabel
  • JeeSite 是什么、概述

    见JeeSite官网 http jeesite4 mydoc io 前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住分享一下给大家 点击跳转到教程 总体概述 快速访问 JeeSite 官网地址 http jeesite c

随机推荐

  • 手把手教你归并排序(递归)

    今天 小编继续带大家学习排序算法 这次我们一起来学习归并排序的递归算法 多多点赞支持博主 速更非递归算法哦 目录 一 实现原理 二 代码实现 三 注意事项与缺点 一 实现原理 归并算法的实现与快排类似 都是采用了分治递归的思路 它的时间复杂
  • 关于vue中父页面的生命周期和子组件生命周期关系导致的报错问题解决

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 问题出现的原因 二 问题解决的方法 1 使用v if删除和添加子组件标签 2 合理设置子组件生命周期的函数 三 父页面和子组件的生命流程描述 总结 前言
  • 汇编视角分析C++虚函数实现原理

    1 概述 虚函数是c 语言非常重要的机制 日常的c 编程工作中经常使用虚函数 通过汇编视角来探究虚函数的实现原理 有助于深刻理解虚函数的内部机制 尤其要说明的是 c 语法规范并没有规定虚函数的具体实现方案 不同的编译器实现方式可以不同 本文
  • 高德德图进去不显示地图或者刷新页面地图丢失解决方法

    在mian js中写这个就可以了 防止刷新地图不显示 清除地图换成 const amapKeys Object keys localStorage filter key gt key match AMap amapKeys forEach
  • opentsdb遇到的坑和优化建议

    opentsdb是基于hbase的时间序列数据库 数据库能力依赖于hbase集群 是一个比较重型的监控解决方案 网上介绍比较多 但大多只是粗浅的介绍 在实际使用了一段时间后也遇到了一些坑和一些使用方法 跟大家分享下 1 opentsdb能做
  • 2023年电赛---运动目标控制与自动追踪系统(E题)OpenART mini的代码移植到OpenMV

    如果有嵌入式企业需要招聘校园大使 湖南区域的日常实习 任何区域的暑假Linux驱动实习岗位 可C站直接私聊 或者邮件 zhangyixu02 gmail com 此消息至2025年1月1日前均有效 前言 1 已经有不少同学根据我上一篇博客完
  • 【Git】(二)分支

    1 创建分支 已存在主分支master 现在需要创建v1 0的版本 一般直接在web页面操作 v1 0分支 基线master 称为项目分支 假如 v1 0项目存在两个项目成员sunriver2000和snow 一般还会再针对个人创建个人分支
  • J2EE&通用分页02

    目录 一 重构 提取公用方法 1 为了进行公共方法的抽取 需要找出上面实习中的可通用部分 和差异化部分 2 公用方法封装思路 3 具体实现 二 分页标签 2 1 准备一个Servlet 3 2 结果展示页面 三 过滤器解决中文乱码问题 四
  • 董事长、总裁和CEO--浅谈公司领导者的称谓与实质

    自从信息产业兴起以来 尤其是网络股泡沫产生以来 CEO 在中国骤然成为一个流行词汇 总经理和总裁们纷纷改称CEO 这个缩写词比它的中译版 首席执行官 更简洁 在中国人心目中更有神圣感 于是便出现了今天CEO满天飞的局面 刚刚从大学毕业的年轻
  • MySQL视图

    一 视图 介绍及基本语法 视图 View 是一种虚拟存在的表 视图中的数据并不在数据库中实际存在 行和列数据来自定义视图的查询中使用的表 并且是在使用视图时动态生成的 通俗的讲 视图只保存了查询的SQL逻辑 不保存查询结果 所以我们在创建视
  • VUE移动端使用overflow-auto滚动条坑

    解决 滚动条 滑动 一次就一直出现在底部问题 在关闭模态框之前 操作原生dom var box document querySelector div box scrollTop 0 设置 滚动条的 位置 为 0 这样 每次重新打开另一条数据
  • 新版husky8.0配合commitlint,规范我们的git的提交记录

    文章目录 安装 配置 第一步 初始化husky 第二步 添加git提交的hook 第三步 在项目根目录新建配置文件 commitlint config js 验证一下 附1 git commit完整的规范 附2 commitlint con
  • C+复习Parameter Passing

    double average double a double b call by value void swap double a double b call by reference in C 11 this is more techni
  • 在Ubuntu环境下用gcc命令运行c程序以及Makefile编译

    在Ubuntu环境下用gcc命令运行c程序以及Makefile编译 用gcc命令编译c语言 用VC 6 0编译C语言 用Makefile编译C语言 用gcc命令编译c语言 主程序main1 c include
  • C51 数码管的动态显示 dynamic display method of digital tube

    代码 include
  • Java代码实现使用while循环接受键盘的输入,如果输入的exit就退出,否则提示用户继续输入

    import java util Scanner 需求 编写代码按照要求实现以下的功能 使用while循环接受键盘的输入 如果输入的exit就退出 否则提示用户继续输入 要点提取 用while true 控制循环输入 用break跳出循环
  • html 基本标签

    1标题标签 h1 h6 h1 这是一段文字 h1 2 段落标签 p p 自动换行 p 这是一段文字 p 3 换行标签和水平线标签 br hr 4 图像标签 img src 图片路径 用于定义html页面的图像 img src img img
  • spss数据预处理步骤_数据处理之剔除无效问卷

    我们都知道在数据分析前 首先需要对数据进行预处理 检查数据中是否含有存在无效样本 异常值等 如果同一样本中存在大量漏填数据或相似答案过多的情况这样的样本都应该算作无效样本来处理 无效样本的常见使用场景 问卷研究中乱填问卷的样本 数据库下载的
  • 动态负荷对电力系统摆幅曲线的影响研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 摆动曲线仿真是评估扰动后电力系统稳定性的重
  • Selenium成长之路-19alert/prompt/confirm弹框处理

    webdriver 中处理 JavaScript 所生成的 alert confirm 以及 prompt 是很简单的 具体思路是使用 switch to alert 方法定位到 alert confirm prompt 然后使用 text