<広告>

Python Selenium フリー・オープンソース

Selenium-「sleep」関数で処理を一時停止する方法

Selenium」は超便利で、色々自動化しています。

例えば
自分のブログに自動でログイン
よく見るWebサイトを自動で起動

Selenium」はさすがに機械だから処理が早い!

早すぎてユーザー名、パスワードの入力が中途半端で、ログインに失敗することも多々あります。

そんなときは「sleep」関数でちょこっと処理を一時停止するとうまくいきます。

投稿者「みか」自己紹介

  • パソコンとデータベースが大好き
  • 自社でネットワーク・システム・機器管理、Webサイト構築
  • 自社向けのシステムをMicrosoft AccessやPHPで多数構築
  • Excelでの作業はVBAを使って効率化
  • ロックバンド「VARS」でベース担当
  • 「VARS」のWebサイト、ブログも構築
  • 「VARS」のライブを観に来てね!https://vasofatum.jp/live/

「sleep」関数の使い方

時間を扱うことができる「time」モジュールをインポートしておきます。

2行目:import time
10行目:time.sleep(5)

5秒間処理が停止します。

from selenium import webdriver
import time

driver = webdriver.Chrome()

# ブラウザを開く
driver.get("https://www.google.com/")

# 5秒待つ
time.sleep(5)

下記のWordPressにログインするコードには、
・ユーザー名を入力する前
・パスワードを入力する前
・ログインをクリックする前
に1秒待つ処理を入れています。

29行目、34行目、39行目です。

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

chrome_options = Options()
# ブラウザを開いたままオプション
chrome_options.add_experimental_option("detach", True)
# 自動テストの文字非表示オプション
chrome_options.add_experimental_option("excludeSwitches", ['enable-automation'])

driver = webdriver.Chrome(options=chrome_options)

#ウインドウを最大化する
driver.maximize_window()

#待機時間設定
wait = WebDriverWait(driver=driver, timeout=20)

# ブログ開く
url = "https://ブログドメイン/wp-login.php"
driver.get(url)
# ページが完全に読み込まれるまで待機
wait.until(EC.presence_of_all_elements_located)

# 念のため1秒待つ
time.sleep(1)
# ID、password入力
txt_id = driver.find_element(By.ID, "user_login")
txt_id.send_keys("xxxxxxxxxx")
# 念のため1秒待つ
time.sleep(1)
txt_pass = driver.find_element(By.ID, "user_pass")
txt_pass.send_keys("zzzzzzzzzz")

# 念のため1秒待つ
time.sleep(1)
# ログインクリック
login_btn = driver.find_element(By.ID, "wp-submit")
login_btn.click()
# ページが完全に読み込まれるまで待機
wait.until(EC.presence_of_all_elements_located)

SeleniumでWordPressに自動ログインする解説はこちら

<広告>

-Python, Selenium, フリー・オープンソース
-, , ,