2023.08.08
Diary
どうも特定のアプリでコントロールが循環参照してしまっているみたいで pywinauto で find_element するとめっちゃ時間がかかった上に 100 個同じのあるよんってエラー出てどうしようもなさげなので自前でツリーをたどってコントロールを特定するメソッドを作ったらようやく動いたよというところで今日の日報がちょうど1000日目。
どうも特定のアプリでコントロールが循環参照してしまっているみたいで pywinauto で find_element するとめっちゃ時間がかかった上に 100 個同じのあるよんってエラー出てどうしようもなさげなので自前でツリーをたどってコントロールを特定するメソッドを作ったらようやく動いたよというところで今日の日報がちょうど1000日目。
今日も pywinauto で自動化をすすめていましたが UI Automation フレームワークを使っているとはいえどうしてもそれだけでは自動化できないポイントがあって適当に time.sleep してみたり window の数を数えてみたり座標でクリックしてみたりというのがあってちょっとしたことで壊れそうなところをいかにロバストに組めるかが腕の見せ所ですね。
Blender は UI を独自で描画しすぎていて inspect.exe でのぞいてみてもウィンドウタイトル部分しかでてこなくって pywinauto では雑にクリックイベント送るぐらいしかできないけどそもそも Blender は Python API が充実しまくってるので add-on ですら Python から制御できてしまうのでむしろ UI Automation よりちゃんと制御できる。