0
私はpywinautoでWindowsの標準カメラアプリを自動化しようとしています。pywinauto動的コントロールが存在するかどうかを検出する
私は正常に存在するコントロールのクリックなどを呼び出すことができますが、私はそれがでますどちらのモードを検出する必要があるので、それはビデオに写真から切り替えたときのカメラアプリは動的にキャプチャボタンを切り替えます。ここで
from subprocess import Popen
from pywinauto import Desktop
from pywinauto.application import Application
# ====== Take a Photo =======
# Need to get at the Camera app from desktop as there's multiple processes in the UI
dlg = Desktop(backend="uia").Camera
dlgWin = dlg.child_window(title="Camera", class_name="Windows.UI.Core.CoreWindow")
# This fails:
#existFlag = dlgWin.child_window(title="Take Photo", control_type="Button").Exists(timeout =2)
# Take photo, this works if the control exists:
buttonTakePhoto = dlgWin.child_window(title="Take Photo", control_type="Button")
buttonTakePhoto.click()
がコントロールですフォトモードでの構造:
そして、動画モードで:
ウィンドウの子コントロールが存在するかどうかを検出するにはどうすればよいですか?私が見たすべての例では、デスクトップの子としてウィンドウを取得して以来、持っていないアプリケーションインスタンスを使用しています。
デフォルトのタイムアウトは5秒です。 timeout = 2は、2秒後にはまだ存在しないため、動作しない可能性があります。しかし、 '.exists()'の代わりに 'buttonTakePhoto.wait( 'visible'、timeout = 5)を使うことをお勧めします。 –