Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Python Selenium(初心者向け)】ボタンをクリックする方法(clickの使い方)

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()


何をしているか

  1. 要素を探す

  2. クリックできる状態になるまで待つ

  3. クリックする

👉 これでエラーがかなり減ります


実務でよくあるパターン

 
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()」が基本。
安定させるには「待ってからクリック」が重要です。