selenium 自动化之五----弹框处理

2024-09-03 03:48

本文主要是介绍selenium 自动化之五----弹框处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本章节针对测试过程中,我们在实际操作中会存在一些弹出警告提示的信息框,针对这些信息框我们也需要进行验证是处理确认可操作性的正确与否
在webdriver中处理js生成的alert confirm,使用switch_to_alert()方法定位,然后使用text/accept/dismiss/send_keys方法进行操作

<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html" charset="UTF-8"><title></title></head><body><div align="left"><h1>selenium 测试弹框处理方法</h1><h2><input type="button" onclick="Alter2()" value="input1-accept 输入弹框信息"/><input type="button" onclick="Alert3()" value="input2-提示获取弹窗按钮信息"/><input type="button" onclick="Alert1()" value="input3-确认弹窗按钮操作"/><br><br><br></h2><span id="SID"></span></div></body><script>function Alert(){document.getElementById("SID").innerHTML="";if(confirm("天煞的自动化")){document.getElementById("SID").innerHTML="<font style='color: red;'>自动化很强大</font>";}else{document.getElementById("SID").innerHTML="<font style='color: red;'>自动化太痛苦!</font>";}}function Alter2(){document.getElementById("SID").innerHTML="";con = prompt("输入yes为要想狂自动化,输入no为我不自动化,但我也很强");if(con=="yes"){document.getElementById("SID").innerHTML="<font style='color: red;'>要想狂自动化</font>";}else if(con=="no"){document.getElementById("SID").innerHTML="<font style='color: red;'>我不自动化,但我也很强</font>";}else{document.getElementById("SID").innerHTML="<font style='color: red;'>请按照套路输入信息,否则列入黑名单</font>";}}function Alert3(){document.getElementById("SID").innerHTML="";alert("测试依然变得更加强大了,你准备好了吗?");}</script>
</html>
#第一步 导入需要的包
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
#第二步驱动浏览器并打开网页
driver=webdriver.Chrome()
driver.implicitly_wait(10)
driver.get('file:///Users/xxx/PycharmProjects/seleniumtest/test.html')
#第三步 定位元素
'''
text=driver.find_element_by_xpath("/html/body/div/h2/input[1]").click()
alter = driver.switch_to_alert()
alter.text #返回弹框文本
alter.accept() ## 弹框之后确认
alter.dismiss()## 弹框之后取消
alter.send_keys("yes") ## 弹框输入的内容
time.sleep(2)
'''
driver.find_element_by_xpath('/html/body/div/h2/input[1]').click()
dialog_box = driver.switch_to_alert()
time.sleep(2)
dialog_box.send_keys("yes") 
dialog_box.accept()
print (driver.find_element_by_xpath('//*[@id="textSpan"]/font').text)  #获取确认弹窗结果
time.sleep(2)
driver.find_element_by_xpath('/html/body/div/h2/input[1]').click()
dialog_box = driver.switch_to_alert()
time.sleep(2)
dialog_box.dismiss()  #关闭对话框
print (driver.find_element_by_xpath('//*[@id="textSpan"]/font').text)  #获取关闭弹窗结果
time.sleep(2)
driver.quit()

待完善,后续出现特殊情况继续补充。。。。。

这篇关于selenium 自动化之五----弹框处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1131940

相关文章

Python处理超大规模数据的4大方法详解

《Python处理超大规模数据的4大方法详解》在数据的奇妙世界里,数据量就像滚雪球一样,越变越大,从最初的GB级别的小数据堆,逐渐演变成TB级别的数据大山,所以本文我们就来看看Python处理... 目录1. Mars:数据处理界的 “变形金刚”2. Dask:分布式计算的 “指挥家”3. CuPy:GPU

Python中CSV文件处理全攻略

《Python中CSV文件处理全攻略》在数据处理和存储领域,CSV格式凭借其简单高效的特性,成为了电子表格和数据库中常用的文件格式,Python的csv模块为操作CSV文件提供了强大的支持,本文将深入... 目录一、CSV 格式简介二、csv模块核心内容(一)模块函数(二)模块类(三)模块常量(四)模块异常

详解如何在SpringBoot控制器中处理用户数据

《详解如何在SpringBoot控制器中处理用户数据》在SpringBoot应用开发中,控制器(Controller)扮演着至关重要的角色,它负责接收用户请求、处理数据并返回响应,本文将深入浅出地讲解... 目录一、获取请求参数1.1 获取查询参数1.2 获取路径参数二、处理表单提交2.1 处理表单数据三、

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

Python Selenium动态渲染页面和抓取的使用指南

《PythonSelenium动态渲染页面和抓取的使用指南》在Web数据采集领域,动态渲染页面已成为现代网站的主流形式,本文将从技术原理,环境配置,核心功能系统讲解Selenium在Python动态... 目录一、Selenium技术架构解析二、环境搭建与基础配置1. 组件安装2. 驱动配置3. 基础操作模

Spring Boot Controller处理HTTP请求体的方法

《SpringBootController处理HTTP请求体的方法》SpringBoot提供了强大的机制来处理不同Content-Type​的HTTP请求体,这主要依赖于HttpMessageCo... 目录一、核心机制:HttpMessageConverter​二、按Content-Type​处理详解1.

一文带你搞懂Redis Stream的6种消息处理模式

《一文带你搞懂RedisStream的6种消息处理模式》Redis5.0版本引入的Stream数据类型,为Redis生态带来了强大而灵活的消息队列功能,本文将为大家详细介绍RedisStream的6... 目录1. 简单消费模式(Simple Consumption)基本概念核心命令实现示例使用场景优缺点2

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息