Django Girls and Boys 備忘録

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

【Python】Seleniumでリンクテキストの一部を指定して要素を取得する方法



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

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

 

はじめに

 


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

 

リンクテキストの一部から要素を取得する場合に使用する`find_element(By.PARTIAL_LINK_TEXT, "xxx")`も、`find_element(By.LINK_TEXT, "xxx")`と同様にリンク操作に便利なメソッドです。

 

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

 

一方で、リンクテキストと完全一致で要素取得したい場合は、先程の

`find_element(By.LINK_TEXT, "xxx")`を使用します。

 

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

 


以下は、`find_element(By.PARTIAL_LINK_TEXT, "xxx")`を使用してGoogleのホームページにアクセスし、「Gmail」ボタンをクリックするコード例です。

 

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

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

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

    # リンクテキストから要素を取得してクリック
   element = driver.find_element(By.PARTIAL_LINK_TEXT, "ail")
   element.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.PARTIAL_LINK_TEXT, "ail")
gmail_link.click()


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

 

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

 

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


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

 

6.ブラウザを閉じる

   driver.quit()

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

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

 

実行結果

 

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

 

 

このコードは、簡単な操作を学びながら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 備忘録