動作チェックとしてのRPA
テストサーバや本番サーバにDeployした際にRPAで最低限の動作チェックが行えると素敵よねー、と友人と話してたのでサンプルです。
Seleniumでも(試してないですが、おそらく)できるんですが、それはそれで。
前記事
MacへのSikuriXの導入
SukuliXでのHello World(RPA的な動作なし)
動作チェック(サンプル)の挙動
サンプルは「存在しないID/PASSを入力してログイン失敗を確認する」ものになります。
ポップアップで成否を通知していますが、この辺をちゃんとした形で記録取る+開発者に通知することで、テスト結果を以ってOK/NGを自動的にテストをできる形になると思います。
コード
import sys
import webbrowser
reload(sys)
sys.setdefaultencoding("SHIFT_JISX0213")
open_url = 'https://qiita.com/'
# ポップアップとして表示
print('処理開始')
popup(u'処理開始')
# ChromeでQiitaを開く
webbrowser.open_new(open_url)
# 「ログイン」を探してクリック
click("1539084120210.png")
# ID/PASSを入力 ※テストなので存在しないID/PASSです
click("1539084564863.png")
type('testid')
type(Key.TAB)
type('testpass')
# ログインボタンを押下
click("1539084365052.png")
# ログインに失敗を確認
if exists("1539084401883.png"):
print('ログインに失敗をちゃんと検知しました')
popup(u'ログインに失敗をちゃんと検知しました')
# ポップアップとして表示
print('処理終了')
popup(u'処理終了')
webbrowser.open_new()は標準ブラウザで開く関数です。
左上の「スクリーンショットを撮る」を押すと、範囲指定のキャプチャ画面になります。キャプチャ撮ったらそのまま編集画面に挿入されます。
保存はpythonスクリプトと同フォルダになります。
自分で撮ったキャプチャを指定することも可能。
参考のキャプチャ画像内には無いですが、右の方の実行ボタンを押せばスクリプトが開始されます。
動かしてみるとわかると思うんですが、ユーザが操作するのと同じようにきちんとポインタが動いたりしてクリックを行なってくれます。DOM解析してクリックやら入力する形ではなく、描画から要素を選択したり入力したりしてくれるので、チェックを掛けるには良いツールじゃないかと思います。