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

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

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
导入 webdriver
from 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等自动化测试工具来完成这些操作。如果是手动操作,则需要使用鼠标进行点击。


ZShiJ
+关注
目录
打赏
0
0
0
0
82
分享
相关文章
Python时间序列分析:使用TSFresh进行自动化特征提取
TSFresh 是一个专门用于时间序列数据特征自动提取的框架,支持分类、回归和异常检测等机器学习任务。它通过自动化特征工程流程,处理数百个统计特征(如均值、方差、自相关性等),并通过假设检验筛选显著特征,提升分析效率。TSFresh 支持单变量和多变量时间序列数据,能够与 scikit-learn 等库无缝集成,适用于大规模时间序列数据的特征提取与模型训练。其工作流程包括数据格式转换、特征提取和选择,并提供可视化工具帮助理解特征分布及与目标变量的关系。
74 16
Python时间序列分析:使用TSFresh进行自动化特征提取
用Python实现简单的任务自动化
本文介绍如何使用Python实现任务自动化,提高效率和准确性。通过三个实用案例展示:1. 使用`smtplib`和`schedule`库自动发送邮件提醒;2. 利用`shutil`和`os`库自动备份文件;3. 借助`requests`库自动下载网页内容。每个案例包含详细代码和解释,并附带注意事项。掌握这些技能有助于个人和企业优化流程、节约成本。
70 3
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。
|
2月前
|
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
212 61
Python学习的自我理解和想法(10)
这是我在千锋教育B站课程学习Python的第10天笔记,主要学习了函数的相关知识。内容包括函数的定义、组成、命名、参数分类(必须参数、关键字参数、默认参数、不定长参数)及调用注意事项。由于开学时间有限,记录较为简略,望谅解。通过学习,我理解了函数可以封装常用功能,简化代码并便于维护。若有不当之处,欢迎指正。
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
在Python开发中,调试是提升效率的关键技能。本文总结了10个实用的调试方法,涵盖内置调试器pdb、breakpoint()函数、断言机制、logging模块、列表推导式优化、IPython调试、警告机制、IDE调试工具、inspect模块和单元测试框架的应用。通过这些技巧,开发者可以更高效地定位和解决问题,提高代码质量。
332 8
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
96 7
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。
Python学习的自我理解和想法(8)
这是我在B站千锋教育学习Python的第8天,主要内容是元组。元组是一种不可变的序列数据类型,用于存储一组有序的元素。本文介绍了元组的基本操作,包括创建、访问、合并、切片、遍历等,并总结了元组的主要特点,如不可变性、有序性和可作为字典的键。由于开学时间紧张,内容较为简略,望见谅。
Python学习的自我理解和想法(7)
学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码! 今天是学Python的第七天,学的内容是集合。开学了,时间不多,写得不多,见谅。

热门文章

最新文章

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等