Joy to the world

とある中小企業のしがない技術者でクリスチャンな人が書く日記。実はメビウス症候群当事者だったり、統合失調症のパートナーがいたりする。

WPFの自動化クソめんどい問題

仕事柄、GUIなアプリケーションの自動化を結構な頻度でやるのだが、WPFアプリを自動化する場合結構面倒くさい問題が発生してしまう。

Windowsアプリケーションの自動化って結構色々と方法があって、最近だとAutoItを好んで使用しているのだが、これの自動化がいわゆるWinFormsを前提としていて、WPFみたいにXAMLで構築されたUIではコントロールの操作ができない。

これの対策として、今のところはC#のUI Automationを使用しているのだが、これもなかなか癖のあるもので、要素を特定するためのAutomation IDが結構変わることがあるのだ。IDとは一体。

Automation IDが変わるということは、直接指定するためには他に一意となる何かを使用するわけだが、これも変動しないID的なものが何かイマイチ分からず、仕方がないので要素総なめして検索するしかなさそうだ。

ちなみに、WPFアプリケーションの構造を解析する場合、みんな大好きspy++ではできなくて、Inspect.exeなるツールを使う必要があり、こちらもなぜかクソ重い謎仕様だったりする。やはりWindowsの自動化の道程は険しい。

こういうの見てると、シェルコマンドで大抵のことができてしまうLinuxってのは、コンピュータをコンピュータとして使用するうえで非常に便利なのだなと再認識できる。