0
点赞
收藏
分享

微信扫一扫

18.2 走对路在开始 GUI 自动化之前

毅会 2022-01-05 阅读 51


在开始 GUI 自动化之前,你应该知道如何避免可能发生的问题。Python 
能以想象不到的速度移动鼠标并击键。实际上,它可能太快,导致其他程序跟不上。而且,如果出了问题,但你的程序继续到处移动鼠标,可能很难搞清楚程序到底在做什么,或者如何从问题中恢复。就像迪斯尼电影《魔法师的
学徒》中的魔法扫帚,它不断地向米老鼠的浴缸注水(然后水溢出来),你的程序可能失去控制,即使它完美地执行你的指令。如果程序自己在移动鼠标,停止它可能很难,你不能点击 IDLE 
窗口来关闭它。好在,有几种方法来防止或恢复 GUI 自动化问题。
8.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,启动自动防故障功能。
 

举报

相关推荐

0 条评论