当前位置: 首页 > news >正文

Selenium处理Alert弹窗

页面弹窗有 3 种类型:

alert(警告信息)
confirm(确认信息)
prompt(提示输入)

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

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

对应处理方式:

alert(警告信息):WebDriver.switch_to.alert.accept()
confirm(确认信息):
    WebDriver.switch_to.alert.accept()
    WebDriver.switch_to.alert.dismiss()
prompt(提示输入):WebDriver.switch_to.alert.send_keys()


alert(警告信息)弹出框

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

from selenium import webdriver
from time import sleep

driver = 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 sleep

driver = 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 sleep

driver = 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元素,对于这种对话框,只需要通过之前介绍的选择器选中,并进行相应的操作即可。

总结

https://www.cnblogs.com/yoyoketang/p/6128648.html

http://www.lryc.cn/news/293600.html

相关文章:

  • FCIS 2023:洞悉网络安全新前沿,引领未来安全创新狂潮
  • 4个最佳的免费全磁盘加密程序,总有一款适合你
  • SQL语句创建数据库
  • 【lesson38】让minishell支持重定向
  • 【安装指南】maven下载、安装与配置详细教程
  • matplotlib-中文乱码问题解决方案
  • Redis(十一)单线程VS多线程
  • 【微服务】Spring Boot集成ELK实用案例
  • 已解决: ImportError: cannot import name ‘relu‘ from ‘keras.layers‘ 问题
  • python-产品篇-火车票分析助手
  • 设计一个可以智能训练神经网络的流程
  • 自然语言处理(02/10):自然语言处理任务和应用程序
  • Jmeter学习系列之三:测试计划详细介绍
  • mermaid使用指南+notion使用实例-持续更新中
  • Pytroch 自写训练模板适合入门版 包含十五种经典的自己复现的一维模型 1D CNN
  • 【30秒看懂大数据】变量
  • Redis - 多集群数据源配置
  • 五大架构风格之四-虚拟机架构风格
  • 在 C# 中 checked 和 unchecked 关键字
  • 【算法分析与设计】跳跃游戏
  • openssl3.2 - helpdoc - P12证书操作
  • 【产业实践】使用YOLO V5 训练自有数据集,并且在C# Winform上通过onnx模块进行预测全流程打通
  • 【操作系统】HeapByteBuffer和DirectByteBuffer的区别
  • C++并发编程 -2.线程间共享数据
  • Kubernetes-资源清单
  • ABAP 笔记--内表结构不一致,无法更新数据库MODIFY和UPDATE
  • 机器学习-3降低损失(Reducing Loss)
  • 蓝桥杯备战(AcWing算法基础课)-高精度-减-高精度
  • AspNet web api 和mvc 过滤器差异
  • HarmonyOS应用/服务发布:打造多设备生态的关键一步