Edited at

Python×業務効率化 Automagicaでブラウザを自動で動かしてみた

More than 1 year has passed since last update.


はじめに

Python×業務効率化の可能性を模索中のk_mayo_beamと申します。

今回はPythonでRPAできないかと探し回っていたら見つけたAutomagicaというライブラリの機能をほんの少しだけ触ってみます。


Automagicaってなんだ?

簡単に言うとPythonでRPAができるよ!っていうライブラリだと思ってます。

公式のドキュメントは⇒こちら

Pythonには多数の便利なライブラリが準備されており、

比較的簡単にExcelやPDFを触ったり、WebUIの自動テストをしたり、

マウスやキーボードを自動で動かしたりできます。

ただ、統合的な自動化をしようとすると、

たくさんのライブラリをインポートするのがちょっとだけ面倒です。

AutomagicaはPyAutoGUI,Selenium,Tesseract,OpenPyXL,Beautiful Soupなどの

有名どころのライブラリをうまく連携させて、使いやすい関数群を提供してくれます


とりあえずインストールしてみる

コマンドはこちら↓

pip install https://github.com/OakwoodAI/automagica/tarball/master

依存関係があるライブラリがたくさんインストールされるので、気をつけて下さい。


少しだけ触ってみる

今回はほんの3つの機能だけを使って、WEB操作を自動化してみます。

以下はChromeでQiitaを開いて、「Python×業務効率化」と検索して、ロゴをクリックするだけのプログラムです。


find_mayo_beam.py

from automagica import ClickOnImage, ChromeBrowser, DisplayMessageBox

from retry import retry

#画像が見つかったらクリックする関数
@retry(delay=1)
def WaitAndClickImage(pic:str):
return ClickOnImage(pic)

#Qiitaの検索窓のxpath
xpath = '//*[@id="globalHeader"]/div/div[1]/form/input'
#検索する内容
content = 'python×業務効率化'

#ChromeでQiitaを開く
browser = ChromeBrowser()
browser.get('https://qiita.com/')

#検索窓を探して内容を検索する
browser.find_element_by_xpath(xpath).send_keys(content)
browser.find_element_by_xpath(xpath).submit()

#k_mayo_beamのロゴを探してクリックする
WaitAndClickImage('logo.png')

#やったぜ!
DisplayMessageBox("やったぜ!")
browser.close()


画像のクリックですが、スクリーンショットをとって画像マッチングをするようなので、画像のサイズに要注意です。

SnippingToolなんかで取得するのがおすすめ。


動作の様子

ちょっとGIFを作成してみました。

demo.gif


さいごに

総じて面白いツールだと思います。

まだまだたくさんの機能がついているので、試してみたいと思います。