当前位置:  开发笔记 > 编程语言 > 正文

使用Python的Windows桌面GUI自动化 - 睡眠与紧密循环

如何解决《使用Python的Windows桌面GUI自动化-睡眠与紧密循环》经验,为你挑选了1个好方法。

我正在使用Python的PyAutoGUI库来自动化GUI.在我完成当前窗口上的数据输入后,我自动化的应用程序将打开一个新窗口.一切都由python自动化(当前窗口中的数据输入和打开窗口所需的点击)来处理.

在当前窗口中执行单击时,新窗口需要一些时间才能打开(可能介于2 - 5秒之间).所以我可以在这里考虑两个选项:

    睡觉使用time.sleep(5)(Con:3秒可能会浪费不必要的)

    旋转紧密循环,直到窗口出现在屏幕上.PyAutoGUI提供了一个locateOnScreen功能,可用于查明窗口是否实际出现在屏幕上.(但是,这是CPU密集型的,并且该功能本身是CPU密集型的,并且需要大约2秒才能返回)

所以它看起来[1]对我来说是一个更好的选择.还有其他一些我可能错过的技术会比这两种方法更好吗?谢谢.



1> Vasily Ryabo..:

对于Windows,GUI自动化pywinauto功能更强大(和pythonic).它隐式等待一些默认时间并允许显式等待(内部有一些CPU非密集循环:0.1秒暂停,快速检查更改,然后再等待).

PyAutoGUI locateOnScreen函数使用屏幕截图的高级分析.这就是为什么它如此CPU密集(但跨平台).

pywinauto示例:

from pywinauto import Application

app = Application(backend="win32").start(u'your_app.exe')
app.MainWindow.menu_select(u'File->Open')

app.OpenDialog.Edit.set_edit_text(u'some path')
app.OpenDialog.Open.click()
app.OpenDialog.wait_not('visible', timeout=10)

new_main_window = app.window(title_re='^.* - The Software$')
new_main_window.wait('ready', timeout=15)

入门指南是学习pywinauto核心概念的一个很好的起点.

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有