LoginSignup
0
3

More than 3 years have passed since last update.

ChromeでWeb打刻自動化

Posted at

概要

毎朝パソコン起動してChrome開いて打刻するのがめんどくさかったので自動化しました。

用意したもの

・Windows 8.1
・Google Chrome
・Python 3
・selenium
・ChromeWebDriver

バージョン覚えてなくてすみませんが、どれも2019年6月時点での最新版だったはずです。

WebDriverの準備

こちらから自分のChromeのバージョンに対応したWindows版のChromeDriverをダウンロードします。
例えば、Chromeのバージョンが78なら、ChromeDriverを78のものを。
他のOSの方は他のOS版をダウンロードしてください。

ダウンロードしたChromeDriverは適当なところにおきます。
(プロジェクトフォルダ内、C直下など)

実装

Pythonで以下のような形で実装します。

clockin.py
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import datetime
import time
import sys

# 要素(定数)
ELEMENT_CLASS = "btnSTART"

# webdriver読み込み
driver = webdriver.Chrome(executable_path="おいた場所/chromedriver.exe")

# Chrome起動して指定URLに飛ぶ
driver.get("https://www.clockin.hoge.jp")

# 表示されるまで待つ
try:
    element = WebDriverWait(driver, 5).until(
        EC.presence_of_element_located((By.CLASS_NAME, ELEMENT_CLASS))
    )
finally:
    if not driver.find_element_by_class_name(ELEMENT_CLASS).is_enabled():
        driver.quit()

# 打刻
driver.find_element_by_class_name(ELEMENT_CLASS).click()

プロキシで自動化できない場合

プロキシがあって毎回ログインしないと接続できない場合、Chromeを起動した時点で止まるかと思います。
SwitchyOmegaという拡張機能を使用して自動化することができます。
詳しい使い方は書きませんが、SwitchyOmegaを起動した状態でアクセスし、プロキシ設定を追加すると、userフォルダが作られます。これをWebDriverを読み込む際にオプションとして記述します。

実装

clockinproxy.py

# webdriver読み込み(chrome_options=optionが追加部分です)
driver = webdriver.Chrome(executable_path="./chromedriver.exe", chrome_options=option)

# ちょっと止める
time.sleep(1)

# Chrome起動して指定URLに飛ぶ
driver.get("https://www.clockin.hoge.jp")

プロキシ認証処理のためか、たまに指定したURLに飛ばず、画面が真っ白になることがあります。そのため、1秒程度sleepで止めると問題なくURLに飛びます。

参考

https://qiita.com/memakura/items/20a02161fa7e18d8a693
 ページ内要素の操作に参考にさせていただきました。

0
3
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
0
3