- 内容提要
- 作者简介
- 技术评审者简介
- 致谢
- 译者序 会编程的人不一样
- 前言
- 本书的读者对象
- 编码规范
- 什么是编程
- 本书简介
- 下载和安装 Python
- 启动 IDLE
- 如何寻求帮助
- 聪明地提出编程问题
- 小结
- 第一部分 Python 编程基础
- 第1章 Python 基础
- 第2章 控制流
- 第3章 函数
- 第4章 列表
- 第5章 字典和结构化数据
- 第6章 字符串操作
- 第二部分 自动化任务
- 第7章 模式匹配与正则表达式
- 第8章 读写文件
- 第9章 组织文件
- 第10章 调试
- 第11章 从 Web 抓取信息
- 第12章 处理 Excel 电子表格
- 第13章 处理 PDF 和 Word 文档
- 第14章 处理 CSV 文件和 JSON 数据
- 第15章 保持时间、计划任务和启动程序
- 第16章 发送电子邮件和短信
- 第17章 操作图像
- 第18章 用 GUI 自动化控制键盘和鼠标
- 附录A 安装第三方模块
- 附录B 运行程序
- 附录C 习题答案
18.2 走对路
在开始GUI自动化之前,你应该知道如何避免可能发生的问题。Python能以想象不到的速度移动鼠标并击键。实际上,它可能太快,导致其他程序跟不上。而且,如果出了问题,但你的程序继续到处移动鼠标,可能很难搞清楚程序到底在做什么,或者如何从问题中恢复。就像迪斯尼电影《魔法师的学徒》中的魔法扫帚,它不断地向米老鼠的浴缸注水(然后水溢出来),你的程序可能失去控制,即使它完美地执行你的指令。如果程序自己在移动鼠标,停止它可能很难,你不能点击IDLE窗口来关闭它。好在,有几种方法来防止或恢复GUI自动化问题。
18.2.1 通过注销关闭所有程序
停止失去控制的GUI自动化程序,最简单的方法可能是注销,这将关闭所有运行的程序。在Windows和Linux上,注销的热键是Ctrl-Alt-Del。在OS X,热键是⌘-Shift-Option-Q。通过注销,你会丢失所有未保存的工作,但至少不需要等计算机完全重启。
18.2.2 暂停和自动防故障装置
你可以告诉脚本在每次函数调用后等一会儿,在出问题的时候,让你有很短的时间窗口来控制鼠标和键盘。要做到这一点,将pyautogui.PAUSE变量设置为要暂停的秒数。例如,在设置pyautogui.PAUSE = 1.5之后,每个PyAutoGUI函数调用在执行动作之后,都会等待一秒半。非PyAutoGUI指令不会停顿。
pyautogui 也有自动防故障功能。将鼠标移到屏幕的左上角,这将导致pyautogui产生pyautogui .FailSafeException异常。你的程序可以用try和except语句来处理这个异常,也可以让异常导致程序崩溃。这两种情况下,如果你尽可能快地向左上移动鼠标,自动防故障功能都将停止程序。可以设置pyautogui. FAILSAFE = False,禁止这项功能。在交互式环境中输入以下内容:
>>> import pyautogui >>> pyautogui.PAUSE = 1 >>> pyautogui.FAILSAFE = True
这里我们导入pyautogui,并将pyautogui.PAUSE设置为1,即每次函数调用后暂停一秒。将pyautogui.FAILSAFE设置为True,启动自动防故障功能。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论