【如何学习Python自动化测试】—— 警告框处理

news/2024/11/17 16:04:57/

7 、 警告框处理

      在 web 中,除了上面提到的元素和操作之外,还有就是页面的提示框的处理了,页面的警告框通常分为这几类 js:alert 、 confirm 以及 prompt,这些警告框,我们都可以通过 switch_to_alert()来处理。
      对警告框的处理有以下几种:

  • 接受警告框:使用 alert.accept() confirm.accept()prompt.accept()方法,点击“确定”按钮,关闭警告框。
  • 拒绝警告框:使用confirm.dismiss()prompt.dismiss()方法,点击“取消”按钮,关闭警告框。
  • 获取警告框文本:使用alert.textconfirm.textprompt.text属性,获取警告框上的文本信息。
  • 输入信息:使用prompt.send_keys()方法,向警告框中输入需要的信息。

弹窗的处理

A、警告提示弹窗

  • 【描述】:包含提示信息和【确认】按钮
  • 【操作】:1、获取弹窗内容;2、进行“确认”操作
  • 【语法实现】
    • 1、获取弹窗内容:driver.switch_to.alert.text
    • 2、进行确认操作:driver.switch_to.alert.accept()

B、确认弹窗

  • 【描述】:包含提示信息和【确认】【取消】按钮
  • 【操作】:1、获取弹窗内容;2、进行“确认”操作;3、进行取消操作
  • 【语法实现】
    • 1、获取弹窗内容:driver.switch_to.alert.text
    • 2、进行确认操作:driver.switch_to.alert.accept()
    • 3、进行取消操作:driver.switch_to.alert.dismiss()

C、输入信息提示弹窗

  • 【描述】:包含提示信息、输入信息框和【确认】【取消】按钮
  • 【操作】:1、获取弹窗内容;2、输入框输入信息;3、进行“确认”操作;4、进行取消操作
  • 【语法实现】
    • 1、获取弹窗内容:driver.switch_to.alert.text
    • 2、输入框输入信息:driver.switch_to.alert.send_keys()
    • 3、进行确认操作:driver.switch_to.alert.accept()
    • 4、进行取消操作:driver.switch_to.alert.dismiss()

      将下列代码保存为.html 文件,点击上面的清空数据的按钮,会产生一个 confirm 的警告框,点击确定,则输入框内显示确定,点击取消,则输入框显示取消,接下来对这 个警告框进行处理。代码如下:

<script>function clear1(){if(confirm("确定要清空数据吗?")){document.main.text1.value = "确定";}else{document.main.text1.value = "取消";}}
</script>
<body><form name="main"><input type="text" name="text1" /><input type="button" name="Submit" value="清空数据" onClick="return clear1();"></form>
</body>
from selenium import webdriver
导入 webdriverfrom time import sleep
需要用到 sleep 来暂停,所以这里导入 time 的 sleep 模块 driver = webdriver.Firefox()打开 firefox 浏览器driver.get('file:///D:/test/test1.html')
打开 html 文件driver.find_element_by_css_selector('body > form:nth-child(1) > input:nth-child(2)').click()
点击按钮text=driver.switch_to_alert().text
获取警告框的文本,赋给 text 变量print text
将文本输出driver.switch_to_alert().dismiss ()
点击警告框中的取消sleep(3)
等待 3 秒driver.find_element_by_css_selector('body > form:nth-child(1) > input:nth-child(2)').click()
再次点击按钮driver.switch_to_alert().accept()
点击警告框中的确定

问一问:

      chrome中带单选框的弹窗要怎么操作单选框呢?比如调用迅雷下载时,每次都弹出是否打开迅雷的提示,左边会有个单选框来勾选不再提示。

在Chrome中操作带有单选框的弹窗,可以通过以下步骤进行:
定位到弹窗:使用合适的选择器或定位方式,找到包含单选框的弹窗元素。
选择单选框:查找并定位到需要选择的单选框元素。
点击选择:使用适当的方法或操作,点击选中单选框。可以使用click()方法或模拟鼠标点击事件。
验证选择:根据需要,可以获取所选择的单选框的状态进行验证。可以使用isSelected()方法来检查是否选中。
需要注意的是,具体的实现可能会因为不同的页面和技术而有所不同。可以使用Selenium等自动化测试工具来完成这些操作。如果是手动操作,则需要使用鼠标进行点击。


http://www.ppmy.cn/news/1237001.html

相关文章

RT-Thread 线程间通信【邮箱、消息队列、信号】

线程间通信 一、邮箱1. 创建邮箱2. 发送邮件3. 接收邮件4. 删除邮箱5. 代码示例 二、消息队列1. 创建消息队列2. 发送消息3. 接收消息4. 删除消息队列5. 代码示例 三、信号1. 安装信号2. 阻塞信号3. 解除信号阻塞4. 发送信号5. 等待信号6. 代码示例 一、邮箱 RT-Thread 操作系…

rabbitMQ发布确认-交换机不存在或者无法抵达队列的缓存处理

rabbitMQ在发送消息时&#xff0c;会出现交换机不存在&#xff08;交换机名字写错等消息&#xff09;&#xff0c;这种情况如何会退给生产者重新处理&#xff1f;【交换机层】 生产者发送消息时&#xff0c;消息未送达到指定的队列&#xff0c;如何消息回退&#xff1f; 核心&…

揭秘 Go 中的模板:一份全面而广泛的指南

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等&#xff0c;您的关注将是我的更新动力&#xff01; 本全面指南将带领您进入Go模板的复杂世界&#xff0c;为您提供使用这个宝贵工具的知识和专业技能。在探索过程中&#xff0c;您将…

Python爬虫-获取汽车之家新车优惠价

前言 本文是该专栏的第10篇,后面会持续分享python爬虫案例干货,记得关注。 本文以汽车之家新车优惠价为例,获取各车型的优惠价,示例图如下: 地址:aHR0cHM6Ly9idXkuYXV0b2hvbWUuY29tLmNuLzAvMC8wLzQyMDAwMC80MjAxMDAvMC0wLTAtMS5odG1sI3B2YXJlYWlkPTIxMTMxOTU= 需求:获…

界面组件DevExpress Reporting v23.1 - Web报表设计器功能升级

DevExpress Reporting是.NET Framework下功能完善的报表平台&#xff0c;它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集&#xff0c;包括数据透视表、图表&#xff0c;因此您可以构建无与伦比、信息清晰的报表 界面组件DevExpress Reporting v23.1已经发布一段…

Flutter 小技巧之 3.16 升级最坑 M3 默认适配技巧

如果要说 Flutter 3.16 升级里是最坑的是什么&#xff1f;那我肯定要说是 Material 3 default &#xff08;M3&#xff09;。 倒不是说 M3 bug 多&#xff0c;也不是 M3 在 3.16 上使用起来多麻烦&#xff0c;因为虽然从 3.16 开始&#xff0c;MaterialApp 里的 useMaterial3 …

中断方式的数据接收

中断接收简介 回顾之前的代码 之前的代码是 等待标志位RXNE位为1才有数据 进而读取数据存放在变量c中 再根据c变量的数据是为0还是为1进而编写灯亮灭的代码 if语句 但这样的代码明显不符合裸机多任务的编程模型 因为在while中为进程 进程执行的时间不能大于5ms 但是while&…

第七章 查找(中)【BST,AVL,红黑树,B树B+树】

1. 二叉排序树BST 1.1 二叉排序树的定义 二叉排序树&#xff0c;又称二叉查找树&#xff08;BST&#xff0c;Binary Search Tree&#xff09; 一棵二叉树或者是空二叉树&#xff0c;或者是具有如下性质的二叉树&#xff1a; 左子树上所有结点的关键字均小于根结点的关键字&am…