Selenium alert 弹窗处理!

news/2025/2/6 9:51:20/

页面弹窗有 3 种类型:

  1. alert(警告信息)
  2. confirm(确认信息)
  3. prompt(提示输入)

对于页面出现的 alert 弹窗,Selenium 提供如下方法:

序号方法/属性描述
1accept()接受
2dismiss()取消
3text获取显示的文本
4send_keys()输入内容

对应处理方式

  1. alert(警告信息):WebDriver.switch_to.alert.accept()
  2. confirm(确认信息):

    1. WebDriver.switch_to.alert.accept()
    2. WebDriver.switch_to.alert.dismiss()
  3. prompt(提示输入):WebDriver.switch_to.alert.send_keys()
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】

alert(警告信息)弹出框

alert(警告信息)弹出框,目的是提示通知信息,只需要用户看完点击确认即可。

from selenium import webdriver
from time import sleepdriver = webdriver.Chrome()  # 打开浏览器
driver.get("http://sahitest.com/demo/alertTest.htm")  # 跳转至测试页面
sleep(1)
element = driver.find_element_by_name("b1")  # 定位
element.click()  # 点击
sleep(1)
alert = driver.switch_to.alert  # 切换到弹窗
print(alert.text)  # 打印弹窗显示的信息:Alert Message
alert.accept()  # 接受
sleep(2)driver.quit()  # 关闭浏览器

confirm(确认信息)弹出框

confirm(确认信息)弹出框,主要是让用户来确定是否要执行某个操作。比如,淘宝,京东等,删除订单是弹出此类弹出,让用户确定是否删除,避免用户误操作。

confirm(确认信息)弹出框提供两种选择,“确认” 或者 “取消”。只需要选择其中一个即可:

确认:WebDriver.switch_to.alert.accept()

取消:WebDriver.switch_to.alert.dismiss()

from selenium import webdriver
from time import sleepdriver = webdriver.Chrome()  # 打开浏览器
driver.get("http://sahitest.com/demo/confirmTest.htm")  # 跳转至测试页面
sleep(1)
element = driver.find_element_by_name("b1")  # 定位
# 1、接受
element.click()  # 点击
sleep(1)
alert = driver.switch_to.alert  # 切换到弹窗
print(alert.text)  # 打印弹窗显示的信息:Alert Message
alert.accept()  # 接受
sleep(2)# 2、取消
element.click()  # 点击
sleep(1)
alert = driver.switch_to.alert  # 切换到弹窗
print(alert.text)  # 打印弹窗显示的信息:
alert.dismiss()
sleep(2)driver.quit()  # 关闭浏览器

prompt(提示输入)弹出框

prompt(提示输入)弹出框,目的是需要用户先输入信息,再做提交。Selenium 提供输入信息的方法是:

WebDriver.switch_to.alert.send_keys()
from selenium import webdriver
from time import sleepdriver = webdriver.Chrome()  # 打开浏览器
driver.get("http://sahitest.com/demo/promptTest.htm")  # 跳转至测试页面
sleep(1)
element = driver.find_element_by_name("b1")  # 定位
# 1、接受
element.click()  # 点击
sleep(1)
alert = driver.switch_to.alert  # 切换到弹窗
print(alert.text)  # 打印弹窗显示的信息:Alert Message
alert.send_keys("自动化测试")  # 输入内容
sleep(1)
alert.accept()  # 接受
sleep(2)driver.quit()  # 关闭浏览器

注意 : 有些弹窗并非浏览器的 alert 窗口,而是 html元素,对于这种对话框,只需要通过之前介绍的选择器选中,并进行相应的操作即可。

总结

END今天的分享就到此结束了,点赞关注不迷路~ 


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

相关文章

【Qt之QStandardItemModel类】介绍

描述 QStandardItemModel类提供了一个通用的模型,用于存储自定义数据。QStandardItemModel可以用作Qt标准数据类型的存储库。它是 Model/View类 之一,是 Qt的model/view框架 的一部分。 QStandardItemModel提 供了一种基于项目的传统方法来处理模型。 Q…

模拟法——张三的零花钱(C#)

题目:张三的零花钱 不知道你有没有零花钱?你是如何管理⾃⼰的零花钱的?张三总爱乱花钱。每个⽉的⽉初妈妈给张三300元钱 ,张三会预算这个⽉的花销,并且能做到实际的花销和预算相同。为了让张三学会对⾦钱的管理&#x…

Django中如何创建表关系,请求生命周期流程图

Django中ORM创建表关系 如何创建表关系(一对一 , 一对多 , 多对多) 图书表,出版社表,作者表,作者详情表 换位思考法判断表关系 图书表和出版社表 >>> 一对多 >>> 图书表是多,出…

RabbitMQ 之 Work Queues 工作队列

目录 一、轮训分发消息 1、抽取工具类 2、启动两个工作线程 3、生产者代码 4、结果展示 二、消息应答 1、概念 2、自动应答 3、消息应答的方法 4、Multiple 的解释 5、消息自动重新入队 6、消息手动应答代码 (1)生产者 (2&#…

k8s关于metadata、spec.containers、spec.volumes的属性介绍(yaml格式)

目录 一.metadata常用属性 二.spec.containers子属性介绍 explain pod.spec.containers给出的参考 1.command示例演示 2.env和envFrom示例演示 3.ports部分详解 4.resources部分详解 5.startupProbe格式演示 6.terminationMessagePath和terminationMessagePolicy格式演…

【Opencv】cv::dnn::NMSBoxes()函数详解

本文通过原理和示例对cv::dnn::NMSBoxes()进行解读,帮助大家理解和使用。 原理 cv::dnn::NMSBoxes是OpenCV库中的一个函数,用于在目标检测中处理多个预测框。在目标检测中,模型可能会为同一个物体生成多个预测框&…

技术随业务而生,业务载技术而行。

技术随业务而生,业务载技术而行。 近些年来,伴随数字经济的发展,在众多企业的数字化转型之路上,云原生、DevOps、微服务、服务治理等成为行业内不断被探讨的新话题。人们在理解和接受这些新型概念的同时,也不断地思考…

Flutter:改变手机状态栏颜色,与appBar状态颜色抱持一致

前言 最近在搞app的开发,本来没怎么注意appBar与手机状态栏颜色的问题。但是朋友一说才注意到这两种的颜色是不一样的。 我的app 京东 qq音乐 这样一对比发现是有的丑啊,那么如何实现呢? 实现 怎么说呢,真不会。百度到的一些是…