当前位置:嗨网首页>书籍在线阅读

28-设置GUI自动化脚本

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

20.11 设置GUI自动化脚本

对于自动化那些繁琐的工作,使用GUI自动化脚本是一个很好的方法,但是你的脚本也可能过分挑剔。如果一个窗口在桌面上的位置不对,或者一些弹出式窗口意外地出现,你的脚本可能会在屏幕上单击错误的东西。以下是一些关于设置你的GUI自动化脚本的技巧。

  • 每次运行脚本时使用相同的屏幕分辨率,这样窗口的位置就不会改变。
  • 你的脚本单击的应用程序窗口应该最大化,这样每次运行脚本时,它的按钮和菜单都在同一个地方。
  • 在等待内容加载的过程中,要加入足够的暂停时间;你不希望脚本在应用程序准备好之前就开始单击。
  • 使用 locateOnScreen() 来找到要单击的按钮和菜单,而不是依赖x、y坐标。如果你的脚本找不到需要单击的东西,就停止程序,而不是让它继续瞎点。
  • 使用 getWindowsWithTitle() 来确保你认为脚本正单击的应用程序窗口是存在的,并使用 activate() 方法将该窗口放在前台。
  • 使用第11章中的日志模块来保存脚本所做事情的日志文件。这样一来,如果你不得不中途停止你的脚本,你就可以改变它,从它上次结束的地方重新开始。
  • 在你的脚本中加入尽可能多的检查。想一想,如果出现一个意外的弹出窗口,或者你的计算机失去了网络连接,它可能会失败。
  • 你可能需要在脚本刚开始时监督该脚本的执行,确保它正常工作。

你可能还需要在脚本的开始处设置一个暂停,这样用户可以设置脚本将单击的窗口。PyAutoGUI有一个 sleep() 函数,它的作用与 time.sleep() 函数相同(它只是让你不必在脚本中添加 import time )。还有一个 countdown() 函数,它可以输出倒计时的数字,给用户一个视觉上的指示,说明脚本即将继续执行。在交互式环境中输入以下内容:

>>> import pyautogui
>>> pyautogui.sleep(3) # Pauses the program for 3 seconds.
>>> pyautogui.countdown(10) # Counts down over 10 seconds.
10 9 8 7 6 5 4 3 2 1
>>> print('Starting in ', end=''); pyautogui.countdown(3)
Starting in 3 2 1

这些技巧让你的GUI自动化脚本更容易使用,并能从不可预见的情况中恢复。