14-alert\confirm\prompt\自定义弹窗

一、认识alert\confirm\prompt

        下图依次是alert、confirm、prompt,先认清楚长什么样子,以后遇到了就知道如何操作了。

二、alert操作

  1. 先用driver.switch_to.alert方法切换到alert弹出框上;
  2. 可以用text方法获取弹出的文本信息;
  3. accept()方法相当于点击“确认”按钮;
  4. dismiss()方法相当于点击右上角的x,取消弹出框。
from selenium import webdriver
import timedriver = webdriver.Chrome()
driver.get('A.html')
time.sleep(1)# 点击主页面上的alert按钮
driver.find_element('id', 'alert').click()
time.sleep(1)# 切换到alert框
t = driver.switch_to.alert# 打印alert框中的文本信息
print(t.text)# 点击alert框中的确认按钮
t.accept()# 相当于点右上角的x,取消弹出框。
# t.dismiss()

三、confirm操作

  1. 先用driver.switch_to.alert方法切换到confirm弹出框上;
  2. 可以用text方法获取弹出的文本信息;
  3. accept()方法相当于点击“确认”按钮;
  4. dismiss()方法相当于点击“取消”按钮。
from selenium import webdriver
import timedriver = webdriver.Chrome()
driver.get('A.html')
time.sleep(1)# 点击主页面上的confirm按钮
driver.find_element('id', 'confirm').click()
time.sleep(1)# 切换到confirm框(这里用的也是driver.switch_to.alert)
t = driver.switch_to.alert# 打印confirm框中的文本信息
print(t.text)# 点击confirm框中的确认按钮
t.accept()# 点击confirm框中的取消按钮
# t.dismiss()

四、prompt操作

  1. 先用driver.switch_to.alert方法切换到prompt弹出框上;
  2. 可以用text方法获取弹出的文本信息;
  3. accept()方法相当于点击“确认”按钮;
  4. dismiss()方法相当于点击“取消”按钮;
  5. 可以用send_keys()方法向prompt输入框中输入文本内容。
from selenium import webdriver
import timedriver = webdriver.Chrome()
driver.get('A.html')
time.sleep(1)# 点击主页面上的prompt按钮
driver.find_element('id', 'prompt').click()
time.sleep(1)# 切换到prompt框(这里用的也是driver.switch_to.alert)
t = driver.switch_to.alert# 打印prompt框中的文本信息
print(t.text)# 向prompt输入框中输入文本内容
t.send_keys('我是prompt框')# 点击prompt框中的确认按钮
t.accept()# 点击prompt框中的取消按钮
# t.dismiss()

五、自定义弹窗

        由于alert弹窗不美观,现在大多数网站都会使用自定义弹窗,使用selenium自带的方法无法处理,此时就需要通过JS代码来处理了。这里以新世界教育网为例:https://sh.xsjedu.org/riyu/zt/006/。

        上图中的这种蓝色弹窗就是现在主流的表现形式,处理这种弹窗可以利用JS代码进行处理,这种元素对象有一个display属性,可以设置元素是否显示。

from selenium import webdriver
import timedriver = webdriver.Chrome()
driver.get('https://sh.xsjedu.org/riyu/zt/006/')
time.sleep(1)js = 'document.getElementsByClassName("tanchuang")[0].style.display="none";'
driver.execute_script(js)

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

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

相关文章

Spring Cloud | 客户端 “负载均衡器“ : Ribbon

目录: 1. 什么是 "负载均衡" ? ( 通过 "负载均衡" 可以将 "用户请求" "分发" 到 不同的服务器,以此来提高 "性能" 和 "可靠性" )2. "负载均衡" 的 分类 ?3. 认识 Ribbon :3.1 R…

【蓝桥杯国赛】动态规划

“动态规划”在蓝桥杯中的出题类型,主要为两种, 要格外注意,每一次 dp 的迭代更新,都是针对于当前位置下的“所有情况”进行的, 应着眼于当前位置的每一种情况。 类型一:一共有多少种情况? 1…

Flutter 中的 ScrollConfiguration 小部件:全面指南

Flutter 中的 ScrollConfiguration 小部件:全面指南 Flutter 是一个功能强大的 UI 框架,它允许开发者使用 Dart 语言来构建高性能、美观的移动、Web 和桌面应用。在 Flutter 中,滚动是用户界面中一个常见的交互元素。ScrollConfiguration 是…

使用 Apache Commons Exec 自动化脚本执行实现 MySQL 数据库备份

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

C# 中的字符与字符串

简介 在C#编程语言中,字符和字符串是处理文本数据的基础。字符是单个的字母或符号,而字符串是字符的集合。本篇博客将详细介绍C#中的字符类型 char 和字符串类型 string,以及它们的基本操作。 字符类型 char char 类型在C#中用于表示单个字…

Part 3.1 深度优先搜索

深度优先搜索(DFS),即按照深度优先的顺序搜索的算法。 深度优先搜索一般使用栈来实现。 [USACO1.5] 八皇后 Checker Challenge 题目描述 一个如下的 6 6 6 \times 6 66 的跳棋棋盘,有六个棋子被放置在棋盘上,使得…

介绍HDD、SSD、U盘:存储技术的恢复原理与安全保存私密文件的方法

随着数字存储技术的飞速发展,硬盘驱动器(HDD)、固态驱动器(SSD)和USB闪存驱动器(U盘)已经成为我们日常生活中不可或缺的部分。尽管这些设备在存储数据方面表现出色,但数据丢失问题仍…

Vue不使用v-model的时候怎么监听数据变化?

在Vue中,如果你不想使用v-model来监听数据变化,你仍然可以通过其他几种方式来实现。v-model实际上是v-bind(或简写为:)和v-on(或简写为)的语法糖,它同时处理了数据的双向绑定:将值绑…

go解析yaml

go解析yaml文件关键就是结构体的创建 初学go tag字段要和yaml文件中的key对应起来,每个层级都要创建对应的结构体,有点烦 package configimport ("gopkg.in/yaml.v3""os" )type Config struct {MysqlConfig MysqlConfig yaml:&q…

开发nfc读卡器应用出现报错Unhandled Exception: SCARD_E_NO_SERVICE

使用flutter开发ACR122U的nfc读卡器的时候,报错: [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Exception: Error while establing context. Reason: SCARD_E_NO_SERVICE #0 PCSCBinding._checkAndThrow (package:fl…

Flink实现实时异常登陆监控(两秒内多次登陆失败进行异常行为标记)

Flink实现异常登陆监控(两秒内多次登陆失败进行异常行为标记) 在大数据处理领域,Apache Flink 是一个流行的开源流处理框架,能够高效处理实时数据流。在这篇博客中,我们将展示如何使用 Apache Flink 从 MySQL 中读取数…

bug清单问题

1. embedding 层 index out of range in self 原因: 一般是因为模型的vocab_size与提供的vocab.txt文件的词大小不一致。 检查方法: 可通过以下方法,查看tensor的最大最小值# print(token_ids, token_ids.max(), token_ids.min()) # &…

科研数据分析常见问题

许多使用SPSSAU进行初次科研数据分析的同学,可能对数据分析方法的深层原理和研究思路缺乏全面的把握。因此,当导师针对数据研究方法提出具体问题时,他们可能会感到些许困惑或难以立即给出满意的答复。鉴于此,SPSSAU汇总了一些常见…

【工具】创客贴会员|创客贴截止2024年6月所有AI功能效果实测(热门推荐和图片编辑部分)

上一篇:【工具】创客贴会员|万字测评!前沿设计网站创客贴的 AI 文生图效果测评 上一篇写的时候只测了文生图,因为百度那边活动没和创客贴接洽好,他们不清楚创客贴的AI和其他会员功能分开了,导致只有10次体…

什么是AVIEXP提前发货通知?

EDI(电子数据交换)报文是一种用于电子商务和供应链管理的标准化信息传输格式。AVIEXP 是一种特定类型的 EDI 报文,用于传输提前发货通知信息。 AVIEXP 报文简介 AVIEXP 是指 Advanced Shipping Notification提前发货通知报文,用…

virtualbox中ubuntu22.04网络配置

第一:添加两个网卡,网卡1是NAT方式,网卡2是仅主机模式(两个顺序不能颠倒) 第二步:启动ifconfig查看网络

搭载昇腾310NPU的Orange Pi AIpro开箱体验以及深度学习样例测试

Orange Pi AIpro开箱体验以及样例测试 随着人工智能和物联网技术的快速发展,单板计算机(Single Board Computer, SBC)在创客和开发者社区中越来越受到欢迎。我最近入手了一款高性能的单板计算机——Orange Pi AIpro。 在入手此款AI开发板之…

探索 Ollama: 你的本地 AI 助手

本期推荐的开源项目是 Ollama,它是一款本地大模型运行工具,可以帮助用户轻松下载和运行各种大型语言模型(LLM),而无需将数据上传到云端。以下是关于 Ollama 的介绍以及安装和使用教程: Ollama 是什么&#…

VB.net 进行CAD二次开发(二)

利用参考文献2,添加面板 执行treeControl New UCTreeView()时报一个错误: 用户代码未处理 System.ArgumentException HResult-2147024809 Message控件不支持透明的背景色。 SourceSystem.Windows.Forms StackTrace: 在 System.Windows…

SpringBoot 配置上下文路径 ​server.servlet.context-path

SpringBoot 2.0 以下配置上下文路径 ​server.context-path/demoSpringBoot 2.0 以上配置上下文路径 ​server.servlet.context-path/demo默认的上下文路径 不配置上下文路径时,默认的上下文路径为 /。 相当于配置上下文路径: ​server.servlet.con…