Selenium Python を使用して要素が存在するかどうかを確認する

Olorunfemi Akinlua 2023年6月21日
Selenium Python を使用して要素が存在するかどうかを確認する

Selenium のような自動化ツールを使用すると、Web プロセスを自動化し、さまざまな言語やブラウザーを介してアプリケーションをテストできます。 Python は、サポートされている多くの言語の 1つであり、非常に簡単な言語です。

その Python クライアントは、Selenium ツールを介してブラウザーに接続するのに役立ちます。 Web テストは Web アプリケーションの開発に不可欠ですが、それ以上に、Web プロセスを自動化できます。

このようなプロセスを自動化するには、ソース コードにアクセスし、特定の要素を確認する必要があります。

この記事では、Python クライアントと API を使用して、要素が Selenium に存在するかどうかを確認する方法を示します。

find_element() を使用して、Selenium Python を使用して要素が存在するかどうかを確認する

Selenium Python クライアントを利用するには、この pip コマンドを使用してそのパッケージをインストールする必要があります。

pip install selenium

Python クライアントとは別に、ChromeDriver などの他のツールを使用する場合は、それらをインストールする必要があります。 かなり簡単にダウンロードしてインストールできます。

これで、Selenium モジュールとその Exception セクションを使用して、要素が存在するかどうかを確認できます。 まず、webdriver モジュールを使用してブラウザー エージェント (Chrome) にアクセスし、get() メソッドを使用して要素をチェックする Web ページにアクセスします。

その後、find_element() メソッドを使用して、By.TAG_NAME 引数と検索する要素 (例: h2) を渡します。 find_element() メソッドは By 戦略とロケーターを使用して要素を検索します。

以下のコードでは、By.TAG_NAME 戦略を使用して必要な要素を見つけます。 By.CSS_SELECTOR を使用して要素を検索することもできます。

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

driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
driver.implicitly_wait(0.5)
driver.get("https://thehackernews.com/")

try:
    element = driver.find_element(By.TAG_NAME, "h2")
    hackHead = element.text
    print("Element exist")
    print(hackHead)
except NoSuchElementException:
    print("Element does not exist")

driver.close()

出力:

DeprecationWarning: executable_path has been deprecated, please pass in a Service object
  driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")

DevTools listening on ws://127.0.0.1:57551/devtools/browser/dce0d9db-6c42-402e-8770-13999aff0e79
Element exist
Pay What You Want for This Collection of White Hat Hacking Courses

要素のコンテンツとしてPay What You Want for This Collection of White Hat Hacking Coursesを取得しましたが、executable_pathの周りにDeprecationWarningが表示される場合があります。

DeprecationWarning: executable_path has been deprecated, please pass in a Service object
  driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")

これに対処するには、webdriver-manager モジュールをインストールして、pip コマンドを使用してブラウザとのやり取りを処理する必要があります。

pip install webdriver-manager

その後、以下のステートメントを使用してモジュールをコードにインポートします。

from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service

executable_path の代わりに service 属性を使用し、Service() および ChromeDriverManager() メソッドを service 属性に渡します。

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

これで、コードは次のようになります。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.implicitly_wait(0.5)
driver.get("https://thehackernews.com/")

try:
    l = driver.find_element(By.TAG_NAME, "h2")
    s = l.text
    print("Element exist -" + s)
except NoSuchElementException:
    print("Element does not exist")

driver.close()

出力:

[WDM] - Downloading: 100%|████████████████████████████████████████████████████████████████████████████████████████████████| 6.29M/6.29M [00:03<00:00, 2.13MB/s]

DevTools listening on ws://127.0.0.1:57442/devtools/browser/2856cae0-e665-42c3-a20d-a847d52658c1
Element exist
Pay What You Want for This Collection of White Hat Hacking Courses

初めて実行するため、出力の [WDM] 部分が表示される場合があります。 それ以外の場合は、表示されるのは DevTools メッセージとコード出力だけです。 これにより、Python クライアントを使用して要素が Selenium に存在するかどうかを簡単に確認できます。

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

関連記事 - Python Selenium