PyAutoGUI 第3章 弹窗交互功能教程(GUI交互,核心3)

news2026/4/30 0:47:51
PyAutoGUI 弹窗交互功能教程GUI交互核心3说明本教程为 PyAutoGUI 核心操作专项教程聚焦 GUI 弹窗交互功能涵盖各类弹窗的使用方法、参数配置、返回值判断结合实操代码和场景示例适配新手入门可直接复制代码调试运行。所有操作均基于 PyAutoGUI 基础环境已安装完成若未安装可参考基础教程完成环境配置。3.1 警告弹窗 alert()警告弹窗是最基础的弹窗类型主要用于显示提示信息、警告内容仅包含一个“确认”按钮用户点击确认后弹窗关闭无返回值或返回 None适用于告知用户操作结果、异常提示等场景。1. 核心方法pyautogui.alert(text, title, buttonOK)作用弹出一个包含提示文本、标题和确认按钮的警告弹窗用户点击按钮后弹窗关闭。参数说明text必传参数弹窗中显示的提示内容字符串格式可换行用 n 实现title可选参数弹窗的标题字符串格式默认为空字符串无标题button可选参数确认按钮上的文字字符串格式默认为 OK可自定义按钮文字。示例代码基础使用自定义配置importpyautoguiimporttime# 基础配置提升脚本稳定性pyautogui.PAUSE1pyautogui.FAILSAFETrue# 1. 基础警告弹窗默认标题、默认按钮文字pyautogui.alert(操作完成,title提示,button确认)# 2. 自定义按钮文字、换行提示time.sleep(1)pyautogui.alert(text警告当前操作可能导致数据丢失n请确认是否继续,title警告提示,button我知道了)# 3. 结合前序操作显示结果提示如文件复制完成time.sleep(1)print(文件复制中...)time.sleep(2)# 模拟文件复制耗时pyautogui.alert(文件复制完成,title操作成功,button关闭)2. 注意事项警告弹窗无返回值无论用户点击按钮仅一个按钮弹窗关闭后脚本继续执行文本内容中的 n 可实现换行让提示信息更清晰避免内容过长导致弹窗显示异常按钮文字建议简洁明了如“确认”“关闭”“知道了”避免过长影响弹窗美观。3.2 确认弹窗 confirm()确定/取消返回选择结果确认弹窗包含“确定”和“取消”两个按钮用户点击不同按钮会返回对应的结果字符串格式核心用于需要用户确认的操作如删除文件、覆盖内容脚本可根据返回值判断后续执行逻辑灵活度更高。1. 核心方法pyautogui.confirm(text, title, buttons[OK, Cancel])作用弹出包含提示文本、标题和两个或多个按钮的确认弹窗用户点击某个按钮后弹窗关闭并返回该按钮的文字。参数说明text必传参数弹窗提示内容字符串格式可换行title可选参数弹窗标题默认空字符串buttons可选参数按钮文字列表默认 [OK, Cancel]可自定义按钮数量和文字如 [确认, 取消, 跳过]。返回值说明用户点击哪个按钮就返回该按钮的文字如点击“确定”返回 确定点击“取消”返回 Cancel可用于判断后续操作。示例代码基础使用返回值判断importpyautoguiimporttime pyautogui.PAUSE1pyautogui.FAILSAFETrue# 1. 基础确认弹窗默认按钮OK、Cancelresultpyautogui.confirm(是否删除当前文件,title确认操作)print(f用户选择{result})# 打印返回值方便调试# 2. 根据返回值判断后续操作time.sleep(1)ifresultOK:print(执行删除操作...)# 此处可添加删除文件的代码结合前两章的键盘/鼠标操作pyautogui.alert(文件删除完成,title操作结果)else:print(取消删除操作)pyautogui.alert(已取消删除文件保留,title操作取消)# 3. 自定义按钮3个按钮time.sleep(1)custom_resultpyautogui.confirm(text请选择操作模式,title模式选择,buttons[手动模式,自动模式,退出])ifcustom_result手动模式:pyautogui.alert(已切换至手动模式,title模式切换)elifcustom_result自动模式:pyautogui.alert(已切换至自动模式,title模式切换)else:pyautogui.alert(即将退出程序,title退出提示)2. 注意事项按钮列表 buttons 可自定义数量至少1个但建议不超过3个避免弹窗过于拥挤返回值严格对应按钮文字大小写、空格需完全一致判断时需注意字符串匹配避免出错若用户关闭弹窗点击右上角叉号返回值为 None建议在脚本中添加对 None 的判断避免报错。3.3 文本输入弹窗 prompt()获取用户输入文本文本输入弹窗包含一个输入框、“确定”和“取消”按钮用户可在输入框中输入文本点击按钮后弹窗关闭并返回输入的内容或 None适用于需要获取用户输入的场景如输入文件名、账号信息。1. 核心方法pyautogui.prompt(text, title, default)作用弹出包含提示文本、标题、输入框和确认/取消按钮的弹窗获取用户输入的文本并返回。参数说明text必传参数弹窗提示内容告知用户需要输入什么title可选参数弹窗标题default可选参数输入框中的默认文本字符串格式用户可直接使用或修改默认为空字符串。返回值说明点击“确定”返回输入框中的文本若未修改默认文本返回默认值点击“取消”或关闭弹窗返回 None。示例代码基础使用输入值判断importpyautoguiimporttime pyautogui.PAUSE1pyautogui.FAILSAFETrue# 1. 基础文本输入弹窗无默认值file_namepyautogui.prompt(text请输入文件名无需后缀,title输入文件名)# 2. 判断输入结果执行对应操作time.sleep(1)iffile_nameisnotNone:# 排除用户取消/关闭弹窗的情况iffile_name.strip():# 判断用户是否输入空文本pyautogui.alert(文件名不能为空,title输入错误)else:print(f用户输入的文件名{file_name})pyautogui.alert(f文件将以「{file_name}.txt」保存,title确认保存)else:pyautogui.alert(已取消输入操作终止,title操作取消)# 3. 带默认值的输入弹窗简化用户输入time.sleep(1)user_namepyautogui.prompt(text请输入您的用户名,title用户登录,defaulttest_user# 默认用户名)ifuser_nameisnotNone:pyautogui.alert(f欢迎您{user_name},title登录成功)else:pyautogui.alert(登录取消,title提示)2. 注意事项输入框仅支持文本输入英文、中文、数字、符号均可无法限制输入类型需在脚本中自行判断输入内容的合法性若用户输入空格strip() 方法可去除前后空格避免因误输入空格导致后续操作异常建议对返回值为 None 的情况进行判断避免脚本因获取不到输入值而报错。3.4 密码输入弹窗 password()隐藏输入内容密码输入弹窗与文本输入弹窗功能类似区别在于用户输入的内容会被隐藏显示为星号 * 或圆点 •适用于需要输入密码、验证码等敏感信息的场景保护用户隐私。1. 核心方法pyautogui.password(text, title, default, mask*)作用弹出包含提示文本、标题、密码输入框和确认/取消按钮的弹窗获取用户输入的敏感信息输入内容会被隐藏。参数说明text必传参数弹窗提示内容如“请输入密码”title可选参数弹窗标题default可选参数输入框默认文本默认空字符串不建议设置密码默认值mask可选参数隐藏输入内容的字符默认 *可改为 • 等其他字符。返回值说明与 prompt() 一致点击“确定”返回输入的密码明文点击“取消”或关闭弹窗返回 None。示例代码密码输入验证逻辑importpyautoguiimporttime pyautogui.PAUSE1pyautogui.FAILSAFETrue# 1. 基础密码输入弹窗默认星号隐藏passwordpyautogui.password(text请输入您的密码,title密码验证,mask*# 输入内容显示为星号)# 2. 密码验证逻辑模拟登录验证time.sleep(1)correct_password123456# 模拟正确密码实际场景中需加密存储ifpasswordisnotNone:ifpasswordcorrect_password:pyautogui.alert(密码正确登录成功,title验证通过)# 此处可添加登录后的操作如打开软件、跳转页面else:pyautogui.alert(密码错误请重新输入,title验证失败)else:pyautogui.alert(已取消密码输入登录终止,title操作取消)# 3. 自定义隐藏字符改为圆点 •time.sleep(1)verification_codepyautogui.password(text请输入验证码,title验证码验证,mask•)ifverification_codeisnotNoneandverification_code6789:pyautogui.alert(验证码正确,title验证通过)else:pyautogui.alert(验证码错误或取消输入,title验证失败)2. 弹窗标题、内容、按钮文字自定义补充所有弹窗的标题、提示内容、按钮文字均可灵活自定义适配不同场景需求总结如下标题title建议简洁明了体现弹窗用途如“密码验证”“输入提示”避免过长提示内容text清晰告知用户操作目的或输入要求可使用 n 换行提升可读性按钮文字button/buttonsalert()单个按钮建议用“确认”“关闭”“知道了”等confirm()多个按钮建议用“确定/取消”“是/否”等对立文字便于用户选择prompt()/password()默认“确定/取消”无需刻意修改保持用户习惯。3. 弹窗返回值判断逻辑总结所有弹窗的返回值是脚本判断后续操作的核心需熟练掌握不同弹窗的返回值规则避免报错alert()无返回值或返回 None无需判断弹窗关闭后脚本直接继续执行confirm()返回用户点击的按钮文字字符串点击叉号返回 None需判断不同返回值执行对应逻辑prompt()返回用户输入的文本字符串点击取消/叉号返回 None需判断是否为 None 及输入内容合法性password()与 prompt() 一致返回输入的明文密码需注意密码验证逻辑及隐私保护实际场景中避免打印密码。3.5 弹窗交互实战综合场景应用结合本章所有弹窗操作编写一个综合实战脚本实现“弹窗提示 → 确认操作 → 输入信息 → 密码验证 → 结果反馈”的完整流程模拟软件登录操作确认的日常场景。实战需求弹出警告弹窗提示用户“即将进入登录界面”弹出确认弹窗询问用户“是否继续登录”若用户选择“继续”弹出文本输入弹窗获取用户名弹出密码输入弹窗获取密码验证用户名和密码弹出对应提示成功/失败若用户选择“取消”弹出提示弹窗终止操作。完整实战代码importpyautoguiimporttime# 基础配置pyautogui.PAUSE1pyautogui.FAILSAFETrue# 1. 警告弹窗提示即将进入登录界面pyautogui.alert(text欢迎使用本软件n即将进入登录界面请准备好账号密码,title欢迎提示,button进入登录)# 2. 确认弹窗询问是否继续登录login_confirmpyautogui.confirm(text是否继续登录,title登录确认,buttons[继续,取消])# 3. 根据确认结果执行后续操作iflogin_confirm继续:# 3.1 文本输入弹窗获取用户名user_namepyautogui.prompt(text请输入您的用户名,title输入用户名,defaultuser)# 判断用户名输入情况ifuser_nameisNoneoruser_name.strip():pyautogui.alert(用户名不能为空登录终止,title输入错误)else:# 3.2 密码输入弹窗获取密码passwordpyautogui.password(text请输入您的密码,title输入密码,mask*)# 3.3 验证用户名和密码模拟验证correct_nameadmincorrect_pwdadmin123ifpasswordisnotNoneanduser_namecorrect_nameandpasswordcorrect_pwd:pyautogui.alert(f登录成功欢迎您{user_name},title登录成功)# 模拟登录后的操作弹出操作提示time.sleep(1)pyautogui.alert(登录后可进行文件管理、数据查看等操作,title操作提示)else:pyautogui.alert(用户名或密码错误登录失败,title验证失败)else:# 用户选择取消登录pyautogui.alert(已取消登录程序即将退出,title操作取消)print(弹窗交互综合实战完成)实操注意事项弹窗操作会阻塞脚本执行只有用户点击弹窗按钮或关闭弹窗脚本才会继续执行需合理设置 PAUSE 间隔避免操作过快密码输入弹窗返回的是明文密码实际开发中需对密码进行加密处理如 MD5 加密避免明文存储或打印保护用户隐私需充分考虑用户的异常操作如关闭弹窗、输入空文本添加对应的判断逻辑避免脚本报错弹窗的标题、内容、按钮文字需贴合场景语言简洁易懂提升用户体验若弹窗无法正常显示需检查 PyAutoGUI 环境是否安装完整或重启脚本尝试。拓展提示弹窗交互可与前两章的键盘、鼠标操作结合实现更复杂的自动化场景比如弹窗提示用户确认后自动执行鼠标点击、键盘输入操作验证密码成功后自动打开指定软件、填写表单等。只需在弹窗返回值判断后添加对应的键盘/鼠标操作代码即可。

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…