0
2

More than 3 years have passed since last update.

[Python]Seleniumを用いたログイン処理の自動化方法 備忘録

Posted at
  • Seleniumを用いたWebページのログイン処理の自動化方法についてメモする。
    • 個人用メモ※何件も類似事例あり。

事前準備

  • chromedriver取得
    • コードと同一階層にchromedriverを配置する。chromedriverの取得方法はこちらを参照のこと。

構成

root_dir    --- login.py
            |_ chromedriver.exe
            |_ conf/setting.conf

コード

  • conf/setting.conf

    • 設定ファイル。接続先のページ情報(URL,画面要素)とログイン情報を記述する。
  [PAGE_INFO]
  URL= TARGET_URL
  ELEM_ID_FORM_USERNAME=USERNAME_ID
  ELEM_ID_FORM_PASSWORD=PASSWORD_ID
  ELEM_ID_BTN_LOGIN=LOGIN_BTN_ID
  [USER_INFO]
  USERNAME = USERNAME
  PASSWORD = PASSWORD
  • login.py

    • 上記設定ファイルの接続情報・ログイン情報をもとに、ログイン処理を行う。
    • 抽象的に記述しているため、対象のページの各画面要素を確認すること。
  from selenium import webdriver
  from selenium.webdriver.chrome.options import Options
  from selenium.webdriver.support.ui import WebDriverWait
  from selenium.webdriver.support import expected_conditions as EC
  import time
  import configparser

  # 設定ファイル読み込み
  conf = configparser.ConfigParser()
  conf.read('conf/setting.conf')
  # ページ情報
  TARGET_URL = conf['PAGE_INFO']['URL']
  TARGET_ELEM_ID_USERNAME = conf['PAGE_INFO']['ELEM_ID_FORM_USERNAME']
  TARGET_ELEM_ID_PASSWORD = conf['PAGE_INFO']['ELEM_ID_FORM_PASSWORD']
  TARGET_ELEM_ID_LOGIN_BTN = conf['PAGE_INFO']['ELEM_ID_BTN_LOGIN']
  # ログイン情報
  USERNAME = conf['USER_INFO']['USERNAME']
  PASSWORD = conf['USER_INFO']['PASSWORD']


  with webdriver.Chrome("./chromedriver.exe") as driver:

      # ページ上のすべての要素が読み込まれるまで待機
      wait = WebDriverWait(driver, 15)
      driver.implicitly_wait(10)
      driver.get(TARGET_URL)
      wait.until(EC.presence_of_all_elements_located)

      # USERNAME 要素を指定 -> 入力
      elem_username = driver.find_element_by_id(TARGET_ELEM_ID_USERNAME)
      elem_username.send_keys(USERNAME)

      # PASSWORD 要素を指定 -> 入力
      elem_password = driver.find_element_by_id(TARGET_ELEM_ID_PASSWORD)
      elem_password.send_keys(PASSWORD)

      time.sleep(3)

      # ログインボタン要素を指定 -> クリック
      elem_login_btn = driver.find_element_by_id(TARGET_ELEM_ID_LOGIN_BTN)
      elem_login_btn.click()

      driver.quit()

動作確認

python login.py
0
2
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
2