
Seleniumを使ってWeb操作を自動化するとき、
最もよく使う操作が 「ボタンをクリックする」 です。
例えばこんな場面👇
-
ログインボタンを押す
-
検索ボタンを押す
-
ダウンロードボタンを押す
この記事では、**Seleniumでボタンをクリックする方法(clickの使い方)**を
初心者向けにわかりやすく解説します。
基本:click()でボタンをクリックする
まずは最も基本的な書き方です。
from selenium.webdriver.common.by import By
button = driver.find_element(By.ID, "login")
button.click()
これで
id="login"
のボタンをクリックできます。
1行で書く方法(よく使う)
次のように1行で書くこともできます。
driver.find_element(By.ID, "login").click()
実務ではこの書き方がよく使われます。
ボタンの取得方法いろいろ
ボタンは様々な方法で取得できます。
IDで取得(おすすめ)
driver.find_element(By.ID, "login").click()
👉 一番シンプルで安定
classで取得
driver.find_element(By.CLASS_NAME, "btn").click()
XPathで取得
driver.find_element(By.XPATH, "//button[text()='ログイン']").click()
CSSセレクタで取得
driver.find_element(By.CSS_SELECTOR, ".btn.login").click()
よくあるエラーと対処法
Seleniumでクリックすると、次のようなエラーが出ることがあります。
① 要素が見つからない
NoSuchElementException
原因:
-
IDやXPathが間違っている
-
ページがまだ読み込まれていない
👉 対策:待機処理を使う
② クリックできない
ElementClickInterceptedException
原因:
-
ボタンがまだ表示されていない
-
他の要素が重なっている
解決策:クリック可能になるまで待つ
Seleniumでは、次の書き方がよく使われます。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
button = wait.until( EC.element_to_be_clickable((By.ID, "login")) )
button.click()
何をしているか
-
要素を探す
-
クリックできる状態になるまで待つ
-
クリックする
👉 これでエラーがかなり減ります
実務でよくあるパターン
wait = WebDriverWait(driver, 10)
wait.until( EC.element_to_be_clickable((By.ID, "download")) ).click()
👉 1行で「待つ+クリック」
まとめ
Seleniumでボタンをクリックする基本はこれです。
driver.find_element(By.ID, "login").click()
ただし実務では
wait.until(EC.element_to_be_clickable(...)).click()
を使うと安定します。
一言まとめ
Seleniumでは「要素取得 → click()」が基本。
安定させるには「待ってからクリック」が重要です。