Django Girls and Boys 備忘録

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

【Python】Seleniumでリンクテキストから要素を取得して操作する方法



PythonSeleniumを使用すると、ブラウザを自動操作することができます。本記事では、「find_element(By.LINK_TEXT, "xxx")」を用いて、リンクテキストを指定して要素を取得し操作する方法について紹介します。

今回は、Googleのホームページで「Gmail」ボタンをクリックする例を通して、初心者の方にもわかりやすく説明します。

 

はじめに

 


Seleniumは、Pythonでブラウザを操作できる強力なライブラリです。ウェブサイトのテストやスクレイピング、自動化タスクなどに利用されます。

 

特に、リンクテキストから要素を取得する`find_element(By.LINK_TEXT, "リンクテキスト")`は、リンク操作に便利なメソッドです。

 

`find_element(By.LINK_TEXT, "xxx")`を使うと、指定したリンクテキストに完全一致する要素を取得できます。

 

一方で、リンクテキストの一部で検索したい場合は、`find_element(By.PARTIAL_LINK_TEXT, "部分的なテキスト")`を使用します。

 

実例:Googleの「Gmail」リンクをクリックする

 


以下は、Googleのホームページにアクセスし、「Gmail」ボタンをクリックするコード例です。

 

from selenium import webdriver
from selenium.webdriver.common.by import By

# ドライバを起動
driver = webdriver.Chrome()

try:
    # Googleのホームページにアクセス
    driver.get("https://www.google.com")

    # リンクテキストから要素を取得してクリック
    gmail_link = driver.find_element(By.LINK_TEXT, "Gmail")
    gmail_link.click()
    print("Gmailリンクをクリックしました。")
finally:
    # ブラウザを閉じる
    driver.quit()

 

コードの解説

 

1.必要なモジュールのインポート

 

from selenium import webdriver
from selenium.webdriver.common.by import By

 

「webdriver」:SeleniumのWebDriverを操作するためのモジュール。これによりブラウザを起動したり、操作したりできます。
「By」:要素を検索する際の方法を指定するためのクラス(例:`By.LINK_TEXT`や`By.ID`)。

 

2.ドライバを起動

 

# ドライバを起動
driver = webdriver.Chrome()

 

 webdriver.Chrome():デフォルト設定でChromeブラウザを起動します。特別な設定やオプションを指定する必要がない場合にそのまま使用します。

 


ポイント:

Seleniumの新しいバージョン(4.6以降)の場合はこれでOKです。

それ以前のバージョンでは同じバージョンのChromeDriverが必要です。「chromedriver」はシステムのPATHに追加するか、同じフォルダに配置してください。

 

3.Googleのホームページにアクセス

 

driver.get("https://www.google.com")

 


get(url):指定したURLを開くメソッド。この例では、Googleのトップページ(https://www.google.com)を開きます。

 

 

4.リンクテキストから要素を取得してクリック

 

gmail_link = driver.find_element(By.LINK_TEXT, "Gmail")
gmail_link.click()


find_element(By.LINK_TEXT, "Gmail"):指定したリンクテキスト(ここでは"Gmail")に完全一致する要素を取得します。Googleのホームページの「Gmail」リンクを対象にしています。
click():取得した要素をクリックします。この操作で「Gmail」リンクを開くことができます。

 

5.操作完了メッセージの表示

 

print("Gmailリンクをクリックしました。")


print():で操作完了のメッセージを出力します。実行結果を確認するための簡単なフィードバックとして有用です。

 

6.ブラウザを閉じる

   driver.quit()

quit():ブラウザを完全に終了し、リソースを解放します。
ポイント:

try-finally構文を使用しているため、エラーが発生しても必ずブラウザを閉じるようにしています。

 

実行結果

 

 
Googleのホームページが開き、「Gmail」リンクがクリックされ、Gmailのページに遷移します。
コンソールには「Gmailリンクをクリックしました。」というメッセージが表示されます。

 

注意点

 

1.リンクテキストの正確性
   リンクテキストは大文字小文字を区別します。例えば、「gmail」ではなく「Gmail」と記載する必要があります。

 

2.要素が見つからない場合
   - 要素が見つからないと`NoSuchElementException`が発生します。その際は、`try-except`でエラー処理を追加すると安全です。

 

このコードは、簡単な操作を学びながらSeleniumの基本を理解するのに適しています。少しずつカスタマイズして、他の操作にも挑戦してみてください!

 

関連記事:

【Python】Seleniumでリンクテキストの一部を指定して要素を取得する方法 - Django Girls and Boys 備忘録

 

【Python】Seleniumでリンクテキストから要素を取得して操作する方法 - Django Girls and Boys 備忘録

 

【Python】Seleniumで要素が表示されているかを判定する方法 - Django Girls and Boys 備忘録

 

【Python Selenium】サイトへのアクセスで親フレームにアクセスする方法 - Django Girls and Boys 備忘録

 

【Python Selenium】カレントウインドウのウインドウサイズ設定方法(使用例:Chrome用、SeleniumVer4.6以前) - Django Girls and Boys 備忘録

 

【Python Selenium】ウインドウの位置の取得方法(使用例:Chrome用、SeleniumVer4.6以前) - Django Girls and Boys 備忘録

 

【Python Selenium】ウインドウの位置の取得方法(使用例:Chrome用、SeleniumVer4.6以降) - Django Girls and Boys 備忘録