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

在进行功能测试时 ,经常会遇到出现各种的弹出的提示 ,比如删除数据给出提示 、做某个操作时也会弹框给出一些友好提示 ,因为这些弹框都是做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)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS开发环境搭建 移动开发 鸿蒙开发 ArkTS

&#x1f4dc;目录 &#x1f4a1; 环境搭建 &#x1f680;安装nodejs &#x1f935;安装ohpm &#x1f354;安装SDK &#x1f4a5;Emulator安装 &#x1f336;️新建ArkTs项目 &#x1f3c6;️ArkTS语言 ✨️基本语法 &#x1f388; 声明式UI描述 &#x1f371;组件 …

【C语言__函数栈帧的创建和销毁__复习篇9】

目录 前言 一、知识补充 二、分析创建和销毁的过程 三、前言问题回答 前言 本篇主要讨论以下问题&#xff1a; 1. 编译器什么时候为局部变量分配的空间 2. 为什么局部变量的值是随机的 3. 函数是怎么传参的&#xff0c;传参的顺序是怎样的 4. 形参和实参是什么关系 5. 函数…

【Linux 进程间通信】管道(三)

文章目录 1.管道的五种特征2.管道的四种情况 1.管道的五种特征 ①&#x1f34e;匿名管道只能用于有血缘关系的进程之间进行通信&#xff08;爷孙进程之间可以进行通信&#xff09;&#xff0c;常用于父子之间进行通信&#xff1b; ②&#x1f34e;管道内部&#xff0c;自带进…

若依后台管理系统(ruo-web)修改主题色,更改颜色值 (2024-04-22)

1、修改文件 setting.js 2、修改的文件路径 ruoyi-web/src/store/modules/setting.js 3、默认主题颜色 #409EFF&#xff0c;改新的颜色值&#xff0c;刷新就好了 4、修改主题颜色 还可以用户自己更换&#xff0c;但这个更换只是存储在浏览器中&#xff0c;清除缓存之后还是…

【ARM 裸机】C 语言 led 驱动

前面刚学习了汇编 led 驱动的编写和验证&#xff0c;现在开始就要进入 C 语言 led 驱动编写与验证了 ! 1、C 语言运行环境构建 1.1、设置处理器模式 使 6ULL 处于 SVC 模式下&#xff0c;之前已经提到了处理器的九种模式&#xff0c;参考&#xff1a;【ARM 裸机】汇编 led 驱…

【Linux系统编程】第六弹---权限的概念

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、什么是权限 2、权限的本质 3、Linux中的用户 4、Linux中文件的权限 4.1、文件访问者的分类(角色) 4.2、文件类型和访问权…

计算机经典黑皮书分享

计算机经典黑皮书是一套计算机科学丛书&#xff0c;其中包含了多本计算机科学领域的经典教材 提供了全面的知识体系&#xff1a;黑皮书涵盖了计算机科学的多个领域&#xff0c;如计算机组成与设计、操作系统、数据库、人工智能等。它们深入浅出地介绍了相关领域的基本概念、原…

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

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

从零开始学 langchain 之搭建最小的 RAG 系统

RAG 可以说是 23 年以来到现在&#xff0c;最为火热的大模型应用技术了&#xff0c;很多人都有了很多经典的研究。而对于新人来说&#xff0c;有些代码十分复杂&#xff0c;导致只看表象并不理解其原理。今天&#xff0c;就利用 langchain 和大家一起搭建一个最简单的 RAG 系统…

JAVA学习笔记27(异常)

1.异常 ​ *异常(Exception) ​ *快捷键 ctrl alt t 选中try - catch ​ *如果进行了异常处理&#xff0c;那么即使出现了异常&#xff0c;程序可以继续执行 1.1 基本概念 ​ *在Java语言中&#xff0c;将程序执行中发生的不正常情况称为"异常"(开发过程中的语…

Xinlinx原语在哪查看如何使用/原语示例

1.打开Vivado 2.点击Tools&#xff0c;选择Language Templates 3.选择Language类型、Device Primitive Instantiation&#xff08;原语&#xff09;、Kintex-7&#xff08;芯片系列&#xff09;&#xff0c;之后可以选择自己需要使用的类型&#xff0c;这里以分布式RAM为例&am…

大一考核题解

在本篇中&#xff0c;将尽力使用多种解法&#xff0c;来达到一题多练的效果。 1&#xff1a; 1.原题链接&#xff1a; 238. 除自身以外数组的乘积 - 力扣&#xff08;LeetCode&#xff09; 这道题首先一眼肯定想到拿整体的积除以当前元素&#xff0c;将结果作为ans&#xff0c;…

Mysql的【存储引擎】之【InnoDB】与【MyISAM】的区别

目录 1.存储引擎在 MyISAM 和 InnoDB 有什么区别 2.Mysql 5.7 默认的存储引擎是什么 3.一个简单例子&#xff08;如果非要使用【MyISAM】存储引擎 &#xff09; 4.2009年写的留言板程序的数据&#xff08;存储引擎是&#xff1a;【MyISAM】&#xff09; 5.mysql 8.0 可以使…

Java学习笔记26(枚举和注解)

1.枚举和注解 1.1 枚举 ​ 1.枚举(enumeration) ​ 2.枚举是一组常量的集合 ​ 3.枚举属于一种特殊的类&#xff0c;里面只包含一组有限的特定的对象 1.枚举应用案例 ​ 1.不需要提供setXxx方法&#xff0c;因为枚举对象值通常为只读 ​ 2.对枚举对象/属性使用final st…

web前端(简洁版)

0. 开发环境 && 安装插件 这里我使用的是vscode开发环境 Auto Rename Tag是语法自动补齐view-in-browser是快速在浏览器中打开live server实时网页刷新 1. HTML 文件基本结构 <html><head><title>第一个页面</title></head><body&g…

vuedevtools图标不亮不能使用,显示vue.js not detected

&#xff08;1&#xff09;不亮解决&#xff1a; 根本原因就是下载的vue开发者工具不对&#xff0c;没有编译。 直接来一个最彻底的解决办法&#xff1a; 下载我已经编译好的shellchrome 链接: https://pan.baidu.com/s/1zKEgGxT5uAvofpD-T1Oa_w?pwd72m5 提取码: 72m5 解…

王者荣耀防御塔如何开发!新手小白做游戏开发采坑经过。phaser前端游戏框架

好嘞&#xff0c;游戏开发框架是js 开发的网页小游戏&#xff01; phaser这个框架。好我们先上图&#xff01; 目前大概是这么一个样子。 然后防御塔功能呢。简单的说就是当人物进去的时候打他。人物扣血。 我们的小人物是这样的代码 遇到的问题如下&#xff1b; 小白刚开始…

【Spring Security系列】Spring Security整合JWT:构建安全的Web应用

前言 在企业级开发或者我们自己的课程设计中&#xff0c;确保用户数据的安全性和访问控制非常重要。而Spring Security和JWT是都两个强大的工具&#xff0c;它俩结合可以帮助我们实现这一目标。 Spring Security提供了全面的安全功能&#xff0c;而JWT则是一种用于身份验证的…

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

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

学习springcloud中Nacos笔记

一、springcloud版本对应 版本信息可以参考&#xff1a;版本说明 alibaba/spring-cloud-alibaba Wiki GitHub 这里说2022.x 分支对应springboot的版本信息&#xff1a; Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot Version 2022.0.0.0* Spring Cloud 202…