0
2

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.

[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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?