勤怠システムをSeleniumで打刻自動化してみた!

Seleniumって何?

突然ですが皆様、「Selenium」をご存知ですか?
Selenium」とは、WebアプリケーションのUIテストを自動化するために開発されたフレームワークです。
簡単に言えば、Webブラウザの操作を自動化してくれるものですね。Webブラウザでできることならば大抵できますので、UIテストだけでなく日々のタスクの自動化やクローリング(Webサイトを巡回して、情報を保存すること)など様々な用途で利用することができます。
今回はこれを使って、弊社の勤怠システムであるマネーフォワードクラウド勤怠への打刻を自動化してみた話になります。

打刻の手順を把握する

自動化するためには、まず打刻のフローがどのようになっているか把握する必要があります。
マネーフォワードクラウド勤怠の出勤時の打刻は以下の手順で実施されます。

①「マネーフォワードIDでログイン」ボタンをクリックする

②マネーフォワードID(メールアドレス)を入力し、
③「同意してログインする」をクリックする

④パスワードを入力し、
⑤「ログインする」をクリックする

⑥「出勤」ボタンをクリックする

このフローをSelenium君に実施してもらおうということになります。

実際に自動化してみる

今回は以下の環境で動かしています。

  • Windows 10 64bit
  • Python 3.10.5
  • Selenium 4.2.0
  • Google Chrome 104.0.5112.102
  • ChromeDriver 104.0.5112.79

Seleniumの基本動作

Webページの操作をSeleniumにさせる場合、基本的に以下の手順を踏みます。

  1. WebDriverで指定のURLを開く(基本的に初回のみ)
  2. 操作したい要素(テキストボックスやボタンなど)を取得する
  3. 取得した要素に対して処理(テキスト入力やクリックなど)をする

実際のコードで見てみましょう。
一部マスキングしてますが、以下が手順①のコードになります。

# ChromeDriverを起動
driver = webdriver.Chrome("C:\********\chromedriver")

# マネーフォワードクラウド勤怠に遷移
driver.get("https://************")

# 「マネーフォワードIDでログイン」ボタンを取得してクリックする
# 「attendance-button-mfid」のクラス名で取得
mfLogin = driver.find_element_by_class_name('attendance-button-mfid')
mfLogin.click()

テキストボックスへの入力がある手順②はこんなコードになります。

# マネーフォワードIDの入力取得してメールアドレスを入力
username_box = driver.find_element_by_name('mfid_user[email]')
username_box.send_keys('hogehoge@adxc.co.jp')

実際に動かしてみる

こんな感じで手順⑥の分までコードを書いて、実際に動かしてみましょう。

うーん、いい感じに動いてますね!
※既に打刻をしてしまっているので打刻処理の部分だけコメントアウトしてます

業務開始時に自動的に打刻させる

コンソールからコマンドを叩いて打刻させるだけでは自動化にはならないので、PC起動時に打刻させるようにしちゃいましょう。
一番シンプルなやり方は「.batファイル」を作って、スタートアップフォルダに入れてしまうことです。
.batファイルはこんな感じで。

python pyファイルのパス

あとはこの.batファイルをスタートアップフォルダに入れたらOKです。
※ちなみにこのままだと再起動時でも打刻をするという残念なことになってしまうため、打刻を制御するギミックを加えてます。

最後に

正直なところ、Webで毎日打刻をするのは面倒ですし、絶対忘れることがあると思ったので今回自動化に踏み切りました。
自動テストで有名なSeleniumですが、こういったことにも使えたりします。もちろんSalesforce にも使えると思います!!
自動化できるところは積極的に自動化してみたいですね。

最後に、弊社にはSalesforceのスペシャリストが多数在籍しております。
何かお困りごとがございましたら、下記ボタンからお気軽にご相談くださいませ。
お問い合わせはこちら

Pardotフォームの最適解

Pardotのフォームをきれいにより使いやすく。ADX ConsultingのDOTEFOならPardotで作られたフォームのCVRを改善できます。

詳細はこちら
真島大輔

真島大輔

技術と技術の融合で、「やりたい」の最適解を導く

新着記事

  • 関連記事
  • おすすめ記事
  • 特集記事

Search

PAGE TOP