如何阅读标题名称使用Pywinauto

时间:2012-08-07 07:42:43

标签: python pywinauto

如何阅读下面的标题名称是代码

from pywinauto.application import *
import time
app=Application.Start("apps.exe")
app.window_(title="aps a.b.c.d")
time.sleep(2)

在该代码发出错误后,如window is not found

所以,我的问题是如何将aps a.b.c.d传递给窗口标题。

1 个答案:

答案 0 :(得分:0)

我注意到pywinauto会导致非常严重的计时错误。如果这是你的问题,这甚至都不是坏事。

仅仅因为该过程已经启动并不意味着窗口存在且完全形成。你的睡眠应该在Application.Start()之后。但这是一个草率的解决方案,在所有情况下都不适用于所有系统。

我已经使用len(pwa_app.windows_())和pwa_app.top_window_()来确保应用程序处于我想要的状态。

然而,这有不足之处。那些函数似乎能够在创建或销毁窗口时导致异常。所以我没有使用普通的time.sleep()调用,而是通常有这样的东西。

#Do While Loop; continuous retry on exception
condition = True
while condition:
    try:
        window_count = len( app.windows_() )
    except:
        continue

    if window_count == num:
        condition = False
    else:
        time.sleep( WAITTIME )

如果有人能向我解释更好的方法,我会很高兴。我没有在文档中找到任何提及这些问题的内容。虽然这不是优雅的,并且会增加CPU的负担,但它在100%的时间都能正常工作。

修改

在浏览stackoverflow时,我发现pywinauto提供的function完全 我的示例。