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


相关文章
|
11天前
|
Python 容器
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。
|
4天前
|
IDE 测试技术 开发工具
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
在Python开发中,调试是提升效率的关键技能。本文总结了10个实用的调试方法,涵盖内置调试器pdb、breakpoint()函数、断言机制、logging模块、列表推导式优化、IPython调试、警告机制、IDE调试工具、inspect模块和单元测试框架的应用。通过这些技巧,开发者可以更高效地定位和解决问题,提高代码质量。
56 8
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
|
2天前
|
Python
Python学习的自我理解和想法(10)
这是我在千锋教育B站课程学习Python的第10天笔记,主要学习了函数的相关知识。内容包括函数的定义、组成、命名、参数分类(必须参数、关键字参数、默认参数、不定长参数)及调用注意事项。由于开学时间有限,记录较为简略,望谅解。通过学习,我理解了函数可以封装常用功能,简化代码并便于维护。若有不当之处,欢迎指正。
|
10天前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
38 7
|
13天前
|
存储 索引 Python
Python学习的自我理解和想法(6)
这是我在B站千锋教育学习Python的第6天笔记,主要学习了字典的使用方法,包括字典的基本概念、访问、修改、添加、删除元素,以及获取字典信息、遍历字典和合并字典等内容。开学后时间有限,内容较为简略,敬请谅解。
|
13天前
|
Python
Python学习的自我理解和想法(7)
学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码! 今天是学Python的第七天,学的内容是集合。开学了,时间不多,写得不多,见谅。
|
11天前
|
存储 安全 索引
Python学习的自我理解和想法(8)
这是我在B站千锋教育学习Python的第8天,主要内容是元组。元组是一种不可变的序列数据类型,用于存储一组有序的元素。本文介绍了元组的基本操作,包括创建、访问、合并、切片、遍历等,并总结了元组的主要特点,如不可变性、有序性和可作为字典的键。由于开学时间紧张,内容较为简略,望见谅。
|
13天前
|
索引 Python
Python学习的自我理解和想法(5)
这是我在B站千锋教育学习Python的第五天笔记,主要内容包括列表的操作,如排序(`sort()`、``sorted()``)、翻转(`reverse()`)、获取长度(`len()`)、最大最小值(`max()`、``min()``)、索引(`index()`)、嵌套列表和列表生成(`range`、列表生成式)。通过这些操作,可以更高效地处理数据。希望对大家有所帮助!
|
9天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
51 11
|
1月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
65 3