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 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