Friendlyの使い方

FriendlyはWindowsアプリのプロセスを操作できるライブラリです。このライブラリを使えば、Windowsアプリを自動化するプログラムを作ることができます。仕事でシステムテストをどうにかして自動化できないかと悩んでいた時期に見つけました。

Friendlyは株式会社Codeerが開発しているOSSです。以前のHPにはFriedlyの使い方が詳しく載っていたのですが、HPがリニューアルされ、使い方のページが見当たらなくなりました。。。

久しぶりにFriendlyを使おうとしたときに困ってしまったので、
何年か前の勉強会の内容を備忘録としてまとめておきます。

---

Friendlyで操作するアプリのプロセスをアタッチする必要があります。WindowsAppFriendクラスを使うことで、アタッチすることができます。

WindowsAppFriend _app = new WindowsAppFriend(Process.Start(アプリのパス));

アタッチした後は、_app変数を通して、アプリを操作したり、アプリの情報を取得したりできます。

情報の取得

var executablePath = _app.Type<Application>().ExecutablePath;

executablePathは、このプログラムの実行パスではなく、操作されているアプリの実行パスになります。
_app はアタッチしたプロセスにアクセスすることができます。
「_app.Type<Application>().ExecutablePath」は、捜査対象アプリのApplicationクラスを参照し、ExecutablePathプロパティにアクセスしています。

※_app.Type<Application>()は、dynamic型のため、インテリセンスは効きません。

アプリの操作

var form = _app.Type<Application>().OpenForms[0];
form.Text = "abc";

アプリを操作するときも同様に記述します。「OpenForms[0]」は、起動されたForm画面になります。そのため、form.Textに「abc」と設定することで、実際にアプリのテキストが変更されます。

実際にシステムテストの自動化を行う際は、ライブラリ(Friendly)の操作方法よりも、操作されるアプリについて習熟しておく必要があります。


WindowsAppFriend と _app.Type<T>() の使い方さえ思い出せば、最低限の操作はできると思います。

この記事が気に入ったらサポートをしてみませんか?