Python で Selenium を使用して要素を検索する
- Python で Selenium を使用して要素を検索する
-
find_elements_by_name()
関数を使用して、Python で Selenium を使用して要素を検索する -
find_elements_by_id()
関数を使用して Python で Selenium の要素を検索する -
find_elements_by_xpath()
関数を使用して、Python で Selenium を使用して要素を検索する -
find_elements_by_link_text()
関数を使用して、Python で Selenium を使用して要素を検索する -
find_elements_by_partial_link_text()
関数を使用して、Python で Selenium を使用して要素を検索する -
find_elements_by_tag_name()
関数を使用して、Python で Selenium を使用して要素を検索する -
find_elements_by_class_name()
関数を使用して、Python で Selenium を使用して要素を検索する -
find_elements_by_css_selector()
関数を使用して、Python で Selenium を使用して要素を検索する -
find_elements()
関数を使用して Python で Selenium の要素を検索する - まとめ
Python の selenium パッケージは、Web ブラウザーでの自動化に使用されます。 ほとんどすべての主要なブラウザーと互換性があります。 ブラウザ上でいくつかのタスクを自動化するスクリプトを Python で書くことができます。
このチュートリアルでは、Python でセレンを使用して Web ページ内の要素を検索するさまざまな方法を示します。
Python で Selenium を使用して要素を検索する
要素は Web ページの基本的な構成要素であり、その構造を定義するために使用されます。 セレンのさまざまな機能を使用して元素を見つけることができます。
これらの関数は、name
、xpath
、id
などのさまざまな属性を使用して要素を検索するために使用されます。 メソッドを使用して、以下の HTML ドキュメントから要素を取得します。
<html>
<body>
<p class="content">Some text</p>
<a href="link.html"> Link_text </a>
<form id="some_form">
<input name="email" type="text" />
<input name="pass" type="password" />
</form>
</body>
</html>
いずれの場合も一致しない場合は、NoSuchElementException
例外が発生することに注意してください。 それらはすべて、一致が見つかった要素のリストを返します。
これらの方法については、以下で説明します。
find_elements_by_name()
関数を使用して、Python で Selenium を使用して要素を検索する
Web ページのさまざまな要素には、name
属性が割り当てられています。 find_elements_by_name()
関数を使用して、name
属性の値に一致する要素のリストを取得できます。
以下のコードを参照してください。
from selenium import webdriver
driver = webdriver.Chrome(r"C:/path/to/chromedriver.exe")
driver.get("https://www.sample.org/")
e = driver.find_element_by_name("email")
上記のコードを理解しましょう。
- 最初に
webdriver
クラスをインポートして、自動化用のブラウザーを作成します。 この例では、Google Chrome ブラウザーにchromedriver.exe
を使用します。 get()
関数を使用して、要素を取得する Web サイトを取得します。- 要素のリストを取得するには、
find_element_by_name()
関数を使用し、関数内でname
属性の値を指定します。
コードは、以下で説明するすべてのメソッドで同じままであることに注意してください。 要素を取得する関数 (この場合は find_element_by_name()
) のみが変更されます。
find_elements_by_id()
関数を使用して Python で Selenium の要素を検索する
id
属性は、Web ページで見つかった要素のリストを返すこともできます。 これには、find_elements_by_id()
関数を使用できます。
例えば、
from selenium import webdriver
driver = webdriver.Chrome(r"C:/path/to/chromedriver.exe")
driver.get("https://www.sample.org/")
e = driver.find_element_by_id("some_form")
find_elements_by_xpath()
関数を使用して、Python で Selenium を使用して要素を検索する
xpath
を使用したパス式を使用して、ドキュメントからノードを取得できます。 xpath
を使用して要素を検索するには、find_elements_by_xpath()
関数を使用できます。
関数内にパス式を指定しています。
例えば、
from selenium import webdriver
driver = webdriver.Chrome(r"C:/path/to/chromedriver.exe")
driver.get("https://www.sample.org/")
e = driver.find_element_by_xpath("/html/body/form[1]")
find_elements_by_link_text()
関数を使用して、Python で Selenium を使用して要素を検索する
ドキュメントには、他の Web ページにリダイレクトできる要素があります。 これは、anchor
タグを使用して実現されます。
find_elements_by_link_text()
関数を使用すると、リンク テキストを使用して要素を取得できます。
以下のコードを参照してください。
from selenium import webdriver
driver = webdriver.Chrome(r"C:/path/to/chromedriver.exe")
driver.get("https://www.sample.org/")
e = driver.find_element_by_link_text("Link_text")
find_elements_by_partial_link_text()
関数を使用して、Python で Selenium を使用して要素を検索する
この機能は前のものと似ています。 違いは、リンクの部分テキストに一致する要素を返すことです。
例えば、
from selenium import webdriver
driver = webdriver.Chrome(r"C:/path/to/chromedriver.exe")
driver.get("https://www.sample.org/")
e = driver.find_element_by_partial_link_text("Link_")
上記の例では、部分的なリンク テキストを使用するだけで要素を取得できたことがわかります。
find_elements_by_tag_name()
関数を使用して、Python で Selenium を使用して要素を検索する
HTML ドキュメントのすべての要素にはタグ名があります。 タグ名を使用して要素を検索するには、Python で find_element_by_tag_name()
を使用できます。
以下のコードを参照してください。
from selenium import webdriver
driver = webdriver.Chrome(r"C:/path/to/chromedriver.exe")
driver.get("https://www.sample.org/")
e = driver.find_element_by_tag_name("form")
find_elements_by_class_name()
関数を使用して、Python で Selenium を使用して要素を検索する
find_elements_by_class_name()
関数を使用して、Web ページの特定の class
属性に一致する要素を取得できます。
以下のコードを参照してください。
from selenium import webdriver
driver = webdriver.Chrome(r"C:/path/to/chromedriver.exe")
driver.get("https://www.sample.org/")
e = driver.find_element_by_class_name("content")
find_elements_by_css_selector()
関数を使用して、Python で Selenium を使用して要素を検索する
CSS セレクター構文を使用して、HTML 要素のスタイルを設定できます。 CSS セレクター構文は、find_elements_by_css_selector()
関数で要素を見つけるためにも使用できます。
次の例を参照してください。
from selenium import webdriver
driver = webdriver.Chrome(r"C:/path/to/chromedriver.exe")
driver.get("https://www.sample.org/")
e = driver.find_element_by_css_selector("p.content")
find_elements()
関数を使用して Python で Selenium の要素を検索する
find_elements()
関数は、HTML ドキュメントから要素を取得できるプライベート メソッドです。 これは、これまでに説明したすべての方法の集大成のようなものです。
以前のすべての属性をパラメーターとして使用して、要素を見つけることができます。
例えば、
from selenium.webdriver.common.by import By
from selenium import webdriver
driver = webdriver.Chrome(r"C:/path/to/chromedriver.exe")
driver.get("https://www.sample.org/")
e = driver.find_elements(By.NAME, "email")
上記の例では、前に行ったように name
属性を使用して要素を検索します。
まとめ
Python でセレンを使用して、さまざまな属性に基づいて要素を検索するさまざまな方法について説明しました。 すべての属性にはそれぞれの機能があります。
プライベート メソッド find_elements
を使用して、さまざまな属性をパラメーターとして提供することもできます。 もう 1つ注意すべき点は、この記事のメソッドは、一致する可能性のあるすべての要素のリストを返すことです。
要素を 1つだけ見つける必要がある場合は、説明した各関数の element
を elements
に置き換えることができます。 たとえば、find_elements
は find_element
になります。
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn