LoginSignup
383
457

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-09-11

はじめに

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

さいごに

総じて面白いツールだと思います。
まだまだたくさんの機能がついているので、試してみたいと思います。

383
457
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
383
457