如何閱讀下面的標題名稱是代碼如何閱讀標題名稱中使用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
到窗口標題。
如何閱讀下面的標題名稱是代碼如何閱讀標題名稱中使用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
到窗口標題。
我注意到pywinauto可能會導致真正的subtile時間錯誤。如果這是你的問題,這甚至不是一個壞的問題。
僅僅因爲該過程已經開始並不意味着該窗口存在並且完全形成。你的睡眠應該在Application.Start()之後。但是這是一個sl散的解決方案,在所有情況下都不適用於所有系統。
我不得不使用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%的時間內運行。
編輯
在瀏覽計算器,我發現pywinauto提供function,做正是我的例子做什麼。
由於您提供的代碼不會引發任何錯誤(我使用Notepad.exe進行了試用並且工作正常),所以您在此嘗試完成的功能並不十分清楚。你究竟想在這裏做什麼,哪些不起作用?你能提供顯示錯誤的代碼嗎? – Raceyman 2012-08-07 19:13:03
當我使用上面的代碼給出錯誤「沒有找到窗口」時,我有屏幕名爲aps a.b.c.d – user1575730 2012-08-08 07:25:13
@ user157530然後這裏一定還有其他事情在發生,但是您沒有提供太多的數據來處理。錯誤的確切文字是什麼?你使用的是什麼版本的Python?你使用的是什麼版本的pywinauto?你使用的是哪個版本的Windows? – Raceyman 2012-08-08 14:01:03