最近の社会環境により、人が集まって勉強会を開くことができないため、ここで簡単に概略を記したいと思います。
今回のテーマは、SeleniumやAppiumによる自動化です。
実際にプログラミングして試してみました。
Selenium
Web上の操作を自動化できます。ブラウザごとにドライバが必要です。
今回は、C#.NETを使い、Chromeで試してみました。
試しに、下記の操作を自動化しました。
- Googleで”guthrie”を画像検索する
- 検索結果の画像を”woody” で絞り込む
- 縦長の画像だけをPCに保存する
以下詳細です。
プログラムを実行して、Chromeブラウザをアドレスを指定して起動します。
ブラウザの左上に、”Chromeは自動テスト ソフトウェアによって制御されています。” と表示されました。
画像検索モードに切り替え、検索キーワードに”guthrie”を入力して検索します。
画像の検索結果が表示されるので、絞り込みのボタンをクリックします。
このとき、”woody” (赤枠参照) と表示されているボタンだけをクリックするようにしました。
最初から検索キーワードに含めればいい話ですが、表示されている文字を読み込むことができることを検証しました。
絞り込みの検索結果に対し、画像のサイズを確認して、縦長のもののみパソコン上に保存するようにしました。
画像はたくさん表示されますので、50件までとするよう制限を掛けました。
縦長の画像は6件だけでした。
プログラムが終了すると、ブラウザも閉じます。
閉じずにおいて、マニュアルで操作を続けることもできそうです。
Appium + WinAppDriver
Seleniumの流れを汲み、Windows上のアプリ操作を自動化します。
WinAppDriverと組み合わせて、今回はWindows 10をターゲットにしました。
メインは、iOSやAndroidなどモバイルアプリのようですが、電卓やメモ帳などのWindows標準アプリを使ったサンプルコードもありました。
せっかくなので、自社で製造したいくつかのシステムについても動作するか確認してみました。
Seleniumと異なり参考にできる情報が少なかったのですが、下記の操作はうまく動作しました。(画面イメージは割愛します。)
- システム(exeファイル)を起動する
- 画面の項目に入力する
- リストボックスから値を選択する
- ボタンをクリックする
- メッセージボックスのボタンをクリックする
- ボタンで別の画面を開く
しかし、別の画面を開いた後、その画面を操作することができませんでした。
ドライバに新しい画面を認識させないといけないようです。
Windowsの業務システムではよくある作りですが、確かにモバイルアプリではそのようなものは見たことがありません。
既に起動している画面を認識させることができれば、と思いますが、今回はそこまでは至りませんでした。
所感
Seleniumは、ブラウザ上に項目が表示されるのを待つなど、実装のポイントはまだまだありそうですが、比較的簡単に実現できたと思います。
Appiumは、試行錯誤している最中です。
しかし、自動化といっても、操作内容は今のところ手作業で書いていますので、それなりの手間がかかります。
SeleniumやAppiumをどんな場面で使えるか、実用性は今後考えていきたいと思います。