0

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

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给窗口标题。

4

1 回答 1

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% 的时间都在工作。

编辑

在浏览 Stack Overflow 时,我发现 pywinauto 提供的功能与我的示例完全一样

于 2013-11-16T01:37:45.530 回答