5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SeleniumでPC起動時・終了時に出退勤打刻をする(Windows10 Pro)

Posted at

はじめに

現在在籍している会社の勤怠システムがめんどくさい。勤怠管理アプリにログインして、「出勤ボタン」や「退勤ボタン」を押さなくてはいけないので、PC 起動時や終了時に自動でボタンを押してもらえるように selenium を使ってプログラムを書いてみた。実行環境は以下。(普段は WSL2 を用いているが、Windows 環境の方が PC 起動や終了きっかけで動かすには都合がよさそうだったので Windows ローカルで実行した。)

  • Windows 10 Pro
  • Google Chrome = 91.0.4472.124
  • chromedriver = 91.0.4472.101
  • Python = 3.9.6
  • selenium = 3.141.0

大まかな流れは以下の通り。

  1. Google Chrome のバージョン確認および chromedriver のインストール
  2. Python および Selenium のインストール
  3. ウェブサイトへのアクセスするための Python スクリプト作成
  4. Python スクリプトを実行する bat ファイルの作成
  5. PC 起動時・終了時に bat を実行するための設定

1. Google Chrome のバージョン確認および chromedriver のインストール

Selenium を用いて Google Chrome を扱うには chromedriver が必要となる。使用している Chrome のバージョンと合わせる必要があるため、以下手順で確認する。

  1. Google Chrome を開く
  2. 右上の「︙」→「ヘルプ」→「Google Chrome について」をクリック
  3. 以下のような画面に遷移するので、バージョンを確認
    chrome_version.png

次に Chrome のバージョンに合わせて、chromedriver を ChromeDriver - Downloads からダウンロードする。今回の場合、メジャーバージョンが 91 なので、ChromeDriver 91.0.4472.101 を選択し、chromedriver_win32.zip をダウンロードし解凍する。(ダウンロードしたドライバへのパスが後で必要となるので、適宜ファイルを移動させておく。自分の場合は C:/Users/[user_name]/chromedriver_win32/chromedriver.exe に置いた)

2. Python および Selenium のインストール

Microsoft Store にて Python をインストールする。(ターミナルを開いて、python と打ってまだインストールされていなければ自動で Microsoft Store に遷移するはず。)ここでは Python 3.9 をインストールした。ターミナルで pip install selenium を実行して、selenium もインストールする。

3. ウェブサイトへのアクセスするための Python スクリプト作成

以下の shukkin.py でサイトへのアクセスおよび出勤ボタンの打刻ができる。ログインに使用するアカウントやパスワードは config.txt に書いておく。(どちらのファイルも C:/Users/[username]/Program/ 直下に置いた。)

shukkin.py
### ライブラリのインポート(selenium 以外は標準ライブラリ)
import sys
import time
import configparser
from selenium import webdriver

### プログラムの実行許可(必要ならコメントアウト)
# print('勤怠管理アプリを開いて打刻します。よろしければ yes と入力してください')
# ans = input()
# if ans != 'yes':
#     print('終了します')
#     sys.exit()

### Chrome ドライバのパス、接続先 URL を設定
chrome_path = 'C:/Users/[username]/chromedriver_win32/chromedriver.exe'
url = 'https://**********'

### アカウント名、パスワードを読み取り
config = configparser.ConfigParser()
config.read('C:/Users/[username]/Program/config.txt', encoding='utf-8')
account = config['kintai']['account']
password = config['kintai']['password']

### Chrome のオプションを設定する
options = webdriver.ChromeOptions()
# options.add_argument('--incognito') # プライバシーモード
# options.add_argument('--headless')  # ヘッドレスモード
driver = webdriver.Chrome(executable_path=chrome_path, options=options)

### 指定サイトに接続する
driver.get(url)

### アカウント、パスワードの入力
driver.find_element_by_id('username').send_keys(account)
driver.find_element_by_id('password').send_keys(password)
driver.find_element_by_id('login').click()
time.sleep(10)

### 出勤ボタン
driver.find_element_by_id('Shukkin').click()
time.sleep(5)

### 退勤ボタン
# driver.find_element_by_id('Taikin').click()
# time.sleep(5)

### ブラウザを終了する
driver.quit()
config.txt
[kintai]
account = myaccount
password = mypassword

アカウントやパスワードの入力フォームは、実際の画面にて右クリック→「検証」から id を調べて driver.find_element_by_id('username') のようにしてアクセスできる。id がない場合はその他キーで代用する。

4. Python スクリプトを実行する bat ファイルの作成

Python スクリプトを実行する bat ファイルは以下のようになる。

shukkin.bat
# `python shukkin.py` をそれぞれ絶対パスで書いているだけ
C:/Users/[username]/AppData/Local/Microsoft/WindowsApps/PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0/python.exe C:/Users/[username]/Program/shukkin.py

python.exe までのパスは以下で確認できる。

$ python
>> import sys
>> sys.executable

5. PC 起動時・終了時に bat を実行するための設定

起動時の自動実行はスタートアップへの登録でできる。[Windows]+[R] を押して、shell:startup と入力すると、スタートアップでのエクスプローラが開かれる。あとは実行したいファイル(今回の場合は shukkin.bat)のショートカットを置けばよい。

終了時の自動実行はローカルグループポリシーへの登録でできる。 Windows10で終了時に特定のスクリプトを実行させる方法(ローカルグループポリシー/gpedit.msc) を参考にした。
[Windows]+[R] を押して、gpedit.msc と入力すると、ローカルグループポリシーエディタが開かれる。左のツリーメニューから「コンピューターの構成」→「Windows の設定」→「スクリプト(スタートアップ/シャットダウン)」→「シャットダウン」を選択。
シャットダウンのプロパティ画面にて、「追加」→「参照」で実行したいスクリプト(shukkin.bat)を選択し「OK」で設定できる。

おわりに

もっともっと自動化を進めたい。楽をしたい。。。

5
1
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
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?