デスクトップ アプリケーション用の自動化された GUI テスト フレームワークを作成しようとしていますが、これには pywinauto を使用しています。私の問題は、SWAPY と Winspector を使用しても、トレイ領域を検出してアプリを見つけるのにまだ問題があることです。
現在のドキュメントのすべてを試しましたが、Web のボリュームの例も試しましたが、成功しませんでした。
from pywinauto import taskbar
sti = taskbar.SystemTrayIcons.WrapperObject()
print 'Clicking ', sti.Button(0).info.text
sti.Button(0).Click()
技術的に必要なのは、トレイ アイコンの正確な位置を見つけて、それをクリックしてメニューを表示することだけです。
pywinauto にはタスクバーに関連する機能がいくつかありますが、それらを機能させることができませんでした。
誰かがこれを行う方法について何かアイデアを教えてもらえますか?
編集
Vasily さんのアイデアを試してみましたが、次のエラーが表示されます。
import pywinauto
from pywinauto import taskbar
app = pywinauto.application.Application()
app.start_('C:\Program Files (x86)\MyApp.exe')
w_handle = pywinauto.findwindows.find_windows(title=u'MyApp')[0]
window = app.window_(handle=w_handle)
texts = taskbar.SystemTrayIcons.Texts()
print texts
とトレースバック:
Traceback (most recent call last):
File "C:/Users/nicolae.farcas/Desktop/pywinauto_c1.py", line 9, in <module>
texts = taskbar.SystemTrayIcons.Texts()
File "C:\Python27\lib\site-packages\pywinauto\controls\common_controls.py", line 1932, in Texts
btn_text = self.GetButton(i).text
File "C:\Python27\lib\site-packages\pywinauto\controls\common_controls.py", line 1914, in GetButton
button.idCommand)
RuntimeError: GetButtonInfo failed for button with command id 0
現在、Windows 7 Pro x64 を使用していますが、8、8.1、および 10 でも実行する必要があります (10 のサポートはまだ遅れていると思われるため、削除できます)。