web自动化系列-selenium的3种弹框操作(十二)

news2024/11/6 7:08:59

在进行功能测试时 ,经常会遇到出现各种的弹出的提示 ,比如删除数据给出提示 、做某个操作时也会弹框给出一些友好提示 ,因为这些弹框都是做web操作时的一些常用组件 ,所以,selenium就不得不支持这些组件 。

1.弹框介绍

在web页面中 ,常见的弹框有提示框 、警告框、确认框 。它们的特性差不多但又不完全一样 。

  • 警告框 :警告框一般只有一个确定按钮 ,面板上有一个小图标和一小段提示信息 。

  • 确认框 :确认框有两个按钮 ,一个是确定按钮 ,一个是取消 ,一般是让用户做选择

  • 提示框 :提示框也有两个按钮 ,一个是确定按钮 ,一个是取消 ,但同时它又可以让用户进行输入 。

2.selenium 弹框处理

在selenium中也有对应的弹框处理方法 ,具体是 :

 

# 1. 初始化弹出框对象
alert = driver.switch_to.alert

# 2.调用相应的方法
alert.text : 返回弹框(alert/confirm/prompt)中的文字信息
alert.accept() : 点击确定按钮
alert.dismiss() : 点击取消按钮

3.具体案例

接下来通过自己实现的一个弹框页面来进行演示 ,页面中有三个按钮 ,分别是警告框、确认框和提示框 ,点击后弹出对应的框 。

具体html代码为 :

html
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Alert</title>
    </head>
    <body>
        <input id = "alert" value = "警告框" type = "button" onclick = "alert('欢迎!请按确认继续!');"/>
        <input id = "confirm" value = "确认框" type = "button" onclick = "confirm('确定吗?');"/>
        <input id = "prompt" value = "提示框" type = "button" onclick = "var name = prompt('请输入你的名字:','请输入  你的名字'); document.write(name) "/>

    </body>
</html>


针对以上的弹出 ,通过selenium实现一段代码 ,完成以上三个框的点击操作 。

 

# 弹框提示
"""
弹框 : 警告框 、确认框 、提示框
功能 :
    text : 获取弹框上的文本内容
    accept() : 点击确认
    dismiss() : 点击取消

步骤:
    1. 初始化对象 : alert = driver.switch_to.alert
    2. 调用以上的属性或方法
"""
import time

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
driver.get(r"E:\弹框.html")

time.sleep(1)


# 创建alert对象
alert = driver.switch_to.alert

# 点击警告框
driver.find_element_by_id("警告框").click()
time.sleep(1)


# 获取警告框的文本信息
print("警告框的文本信息:{}".format(alert.text))

# 点击确认按钮
alert.accept()
time.sleep(2)

# 点击确认框
driver.find_element_by_id("确认框").click()
time.sleep(2)

alert.dismiss()
time.sleep(2)

# 点击提示框
driver.find_element_by_id("提示框").click()
time.sleep(2)
alert.send_keys("hello world")
time.sleep(2)
alert.accept()
time.sleep(2)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1613947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python基础04-操作系统中的文件与目录操作

在与操作系统交互时&#xff0c;我们经常需要执行文件和目录的操作。Python提供了丰富的库来帮助我们完成这些任务。以下是一些常见的操作&#xff0c;以及如何使用Python代码来实现它们。 1. 导航文件路径 在不同的操作系统中&#xff0c;文件路径的格式可能不同。Python的o…

WAF攻防-漏洞发现协议代理池GobyAwvsXray

知识点 1、Http/s&Sock5协议 2、Awvs&Xray&Goby代理 3、Proxifier进程代理使用 4、Safedog&BT&Aliyun防护在漏洞发现中&#xff0c;WAF会对三个方向进行过滤拦截&#xff1a; 1、速度频率问题&#xff08;代理池解决&#xff09; 2、工具的指纹被识别&am…

【Leetcode笔记】236.二叉树的最近公共祖先

文章目录 题目要求ACM运行结果 题目要求 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能…

Zabbix监控Oracle归档日志空间

1、oracle查看归档日志空间的sql语句 select sum(PERCENT_SPACE_USED) from v$recovery_area_usage; 2、交互式查看oracle归档日志空间的命令&#xff0c;可以手动执行一下&#xff0c;注意要用oracle用户 sqlplus -S "/ as sysdba" << EOF select sum(PER…

python使用uiautomator2操作真机(vivo Y30)

环境&#xff1a; python3.8.10&#xff0c;vivo Y30(8G,128g)&#xff0c;版本android 10。 之前写过&#xff1a; python使用uiautomator2操作真机&#xff08;荣耀10青春版&#xff09;_python真机操作-CSDN博客 python使用uiautomator2操作真机&#xff08;oppo a9x&a…

CompletableFuture编排异步线程

CompletableFuture 是 Java 8 引入的一种新的 Future&#xff0c;设计目的是为了编写非阻塞的异步代码。 传统异步编程方式 传统异步编程方式获得异步任务值&#xff0c;首先我们得通过future task &#xff0c;然后创建一个实现callable内部类&#xff0c;或者通过lambda的表…

JAVA学习笔记31(IO流)

1.IO流 1.文件流 ​ *文件在程序中是以流的形式来操作的 2.常用文件操作 1.创建文件对象 1.new File(String pathname) //根据路径构建一个File对象 main() {}public void create01() {String filePath "e:\\news1.txt";File filePath new File(filePath);tr…

人人都会给视频换脸_出色的AI换脸软件离线版你可以把视频换上明星脸

网盘下载 简单几步骤: 1、找个人脸照片&#xff0c;正面高清 2、找个视频&#xff0c;最好是单人的视频&#xff0c;或者只有一个女的&#xff0c;这样可以按照条件换脸 3、点击开始&#xff0c;等待完成即可&#xff08;显卡勾选显卡&#xff0c;显卡不行选择CPU&#xff09;…

最新win11配置cuda以及cudnn补丁教程

1、首先使用指令 nvidia-smi 查看电脑支持的**最高cuda**版本&#xff0c;例如&#xff1a;本机 12.2 2、进入CUDA下载cuda安装包 https://developer.nvidia.com/cuda-toolkit-archive 2、点击上方绿色的链接&#xff0c;按照图中序号选择的即可&#xff0c;最后点击下载。 …

【MySQL 数据宝典】【磁盘结构】- 004 redolog 重做日志

一、背景介绍 持久性要求&#xff1a; 对于已提交的事务&#xff0c;即使系统发生崩溃&#xff0c;其对数据库的更改也不能丢失。问题&#xff1a; 在事务提交前将所有修改的页面刷新到磁盘浪费资源。随机IO导致刷新速度慢。 解决方案&#xff1a; 【数据副本】记录事务执行过…

中仕公考:广东省2024高校毕业生‘三支一扶‘开始报名

广东省2024高校毕业生三支一扶于今日4月22日正式开始报名&#xff0c;报名人员请于2024年4月22日9:00-4月26日17:00登录广东省高校毕业生“三支一扶”计划信息管理系统进行报名。

裤子什么面料适合夏季?必备的五条夏季男生裤子

许多男生朋友应该都发现&#xff0c;想选一条穿着舒服的裤子可真不容易&#xff0c;总是会出现各种情况&#xff0c;列如常见的卡档、显腿粗、显矮等等。甚至还会出现一些质量问题&#xff0c;导致各种闹心。 为了让大家可以找到更适合自己的裤子&#xff0c;我特别花了比较长…

HTML重要标签梳理学习

1、HTML文件的框架 使用VS Code编码时&#xff0c;输入!选中第一个&#xff01;就可以快速生成一个HTML文件框架。 2、标签 <hr> <!--下划线--> <br> <!--换行--> <strong>加粗</strong> &…

ChatGPT4.5:能力大提升,全新体验

说明 ChatGPT4是2023年的5月份发布的&#xff0c;马上就发布一周年了。其他的大语言模型&#xff0c;比如Claude和开源的Lama也相继更新了最新版本。而根据目前国外发布的各种消息来看&#xff0c;ChatGPT4.5也即将发布。 GPT-4.5 Turbo 发布时间 最新消息显示&#xff0c;Op…

Meta 发布 Llama 3:迄今为止最强大的开源大语言模型

Meta 发布了 Llama 3&#xff0c;其中包含 8B 和 70B 两个版本。Llama 3 以强大的性能和丰富的功能成为迄今为止最强大的开源大语言模型之一。从已经释放的信息来看&#xff0c;Llama 3 在模型架构、训练数据、训练规模和指令微调等方面进行了多项改进&#xff0c;使其在推理、…

详解Java中的五种IO模型

文章目录 前言1、内核空间和用户空间2、用户态和内核态3、上下文切换4、虚拟内存5、DMA技术6、传统 IO 的执行流程 一、阻塞IO模型二、非阻塞IO模型三、IO多路复用模型1、IO多路复用之select2、IO多路复用之epoll3、总结select、poll、epoll的区别 四、IO模型之信号驱动模型五、…

Git 原理及使用 (带动图演示)

文章目录 &#x1f308; Ⅰ Git 安装&#x1f319; 01. Linux - centos &#x1f308; Ⅱ Git 工作区、暂存区和版本库&#x1f319; 01. 认识工作区、暂存区和版本库&#x1f319; 02. 使用 Git 管理工作区的文件 &#x1f308; Ⅲ Git 基本操作&#x1f319; 01. 创建本地仓库…

Java代码基础算法练习-斐波纳契数列-2024.04.22

任务描述&#xff1a; 1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8&#xff0c;13&#xff0c;21&#xff0c;34&#xff0c;55&#xff0c;89……这个数列则称为“斐波那契数列”&#xff0c;其中每 个数字都是“斐波那契数”。 输入一个整数N(N不大…

服务器渲染技术(JSPELJSTL)

目录 前言 一.JSP 1.基本介绍 3.page指令(常用) 4.JSP三种常用脚本 4.1 声明脚本 <%! code %> 4.2 表达式脚本 <% code %> 4.3 代码脚本 <% code %> 4.4 注释 <%-- 注释 --%> 5. JSP 内置对象 5.1 基本介绍 5.2 九个内置对象 6.JSP域对象 二…

4-内核开发-第一个块设备模块开发案例

4-内核开发-第一个块设备模块开发案例 目录 4-内核开发-第一个块设备模块开发案例 1.开发原则创建步骤 2. 编译并加载模块 ​3.安装模块 4.检查模块是否加载成功 5.通过设备名称查看 6. 创建一个块设备文件 7. 查看块设备 8.模块卸载 9.总结 课程简介&#xff1a; L…