この記事では、Pythonのseleniumライブラリを使い、ウェブブラウザの操作を自動化するための基本的な方法について解説します。ページの読み込み、要素の検索、クリック、フォームへの入力といった一連の操作を、最新のSelenium 4の構文に沿って説明します。
1. 準備:SeleniumとWebDriverのセットアップ
seleniumはサードパーティ製のライブラリです。また、ブラウザを操作するためのWebDriverを自動で管理するwebdriver-managerも一緒にインストールすると便利です。
pip install selenium webdriver-manager
Selenium 4では、Serviceオブジェクトを使ってWebDriverを起動するのが標準的な方法です。以下はFirefoxを起動する例です。
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from webdriver_manager.firefox import GeckoDriverManager
# WebDriverを自動的にインストール・セットアップ
service = Service(GeckoDriverManager().install())
browser = webdriver.Firefox(service=service)
print(f"Selenium WebDriverの型: {type(browser)}")
2. ブラウザの基本操作
WebDriverオブジェクトを使って、ブラウザの基本的な操作が可能です。
browser.get(url): 指定したURLのページを開きます。
browser.get('https://ja.wikipedia.org/')
browser.back(), browser.forward(), browser.refresh(): ブラウザの「戻る」「進む」「更新」ボタンに相当します。 browser.quit(): ブラウザを閉じ、WebDriverのセッションを終了します。
3. ページの要素を検索する
Webページ上の特定の要素(リンク、入力ボックスなど)を検索するには、find_element()メソッドとByクラスを使います。find_element_by_*という古い書き方は非推奨となりました。
from selenium.webdriver.common.by import By
# Wikipediaのトップページを開く
browser.get('https://ja.wikipedia.org/')
try:
# class名が'central-featured-logo'の要素を検索
logo_element = browser.find_element(By.CLASS_NAME, 'central-featured-logo')
print(f"<{logo_element.tag_name}>タグ(class='{logo_element.get_attribute('class')}')を見つけました。")
except Exception:
print("指定したクラス名を持つ要素は見つかりませんでした。")
検索に使う主なByのロケータは以下の通りです。 By.ID: id属性で検索 By.CLASS_NAME: class属性で検索 By.CSS_SELECTOR: CSSセレクタで検索 By.LINK_TEXT: リンクの完全なテキストで検索 By.TAG_NAME: タグ名('a', 'div'など)で検索
4. 要素の操作:クリックとフォーム入力
要素を見つけたら、クリックしたり、テキストを入力したりできます。
ページをクリックする find_element()で見つけた要素に対して.click()メソッドを呼び出します。
# 'メインページ'というテキストを持つリンクを探してクリック
link_element = browser.find_element(By.LINK_TEXT, 'メインページ')
# link_element.click()
フォームを記入して送信する .send_keys()でテキストを入力し、.submit()でフォームを送信します。
# Wikipediaの検索フォームを操作する例
browser.get('https://ja.wikipedia.org/')
# idが'searchInput'の検索ボックス要素を取得
search_element = browser.find_element(By.ID, 'searchInput')
# 検索ボックスにテキストを入力
search_element.send_keys('Python')
# フォームを送信
search_element.submit()
5. 特殊キーの送信
send_keys()では、通常のテキストだけでなく、エンターキーや矢印キーなどの特殊なキーも送信できます。
from selenium.webdriver.common.keys import Keys
# ページ全体を表す<html>タグを取得
html_element = browser.find_element(By.TAG_NAME, 'html')
# ページの一番下までスクロール
html_element.send_keys(Keys.END)
# ページの一番上までスクロール
html_element.send_keys(Keys.HOME)
まとめ
seleniumライブラリは、Webブラウザの操作を自動化するための強力なフレームワークです。最新のSelenium 4では、webdriver-managerによる簡単なセットアップと、find_element(By.*)という統一された要素検索方法が推奨されています。ページの読み込み、要素の検索と操作(クリック、入力)、ブラウザ自体の制御といった機能を組み合わせることで、Webテストの自動化やWebスクレイピングなど、幅広いタスクを実行できます。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
