Überprüfen Sie, ob das Element mit Selenium Python existiert

Olorunfemi Akinlua 21 Juni 2023
Überprüfen Sie, ob das Element mit Selenium Python existiert

Automatisierungstools wie Selenium ermöglichen es uns, Webprozesse zu automatisieren und Anwendungen über verschiedene Sprachen und Browser zu testen. Python ist eine von vielen unterstützten Sprachen und eine sehr einfache Sprache.

Sein Python-Client hilft uns, uns über Selenium-Tools mit Browsern zu verbinden. Webtests sind für die Entwicklung von Webanwendungen von entscheidender Bedeutung, aber darüber hinaus ermöglichen sie uns die Automatisierung von Webprozessen.

Wir benötigen Zugriff auf den Quellcode und prüfen auf bestimmte Elemente, um solche Prozesse zu automatisieren.

Dieser Artikel zeigt Ihnen, wie Sie mithilfe des Python-Clients und der API überprüfen, ob ein Element in Selenium vorhanden ist.

Verwenden Sie find_element(), um mit Selenium Python zu prüfen, ob das Element existiert

Um den Selenium-Python-Client nutzen zu können, müssen wir sein Paket über diesen pip-Befehl installieren:

pip install selenium

Neben dem Python-Client müssen wir andere Tools installieren, wenn wir sie verwenden möchten, wie z. B. den ChromeDriver. Sie können es ziemlich einfach herunterladen und installieren.

Jetzt können wir das Modul Selenium und dessen Abschnitt Exception verwenden, um zu prüfen, ob ein Element existiert. Zuerst können wir das Modul webdriver verwenden, um auf den Browseragenten (Chrome) zuzugreifen, und die Methode get() verwenden, um auf die Webseite zuzugreifen, deren Elemente wir überprüfen möchten.

Verwenden Sie danach die Methode find_element() und übergeben Sie das Argument By.TAG_NAME und das Element, das Sie finden möchten (z. B. h2). Die Methode find_element() verwendet die By-Strategie und den Locator, um Elemente zu finden.

Im folgenden Code verwenden wir die Strategie By.TAG_NAME, um das gewünschte Element zu finden. Wir können auch By.CSS_SELECTOR verwenden, um Elemente zu finden.

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

Ausgang:

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

Wir haben Pay What You Want for This Collection of White Hat Hacking Courses als Inhalt des Elements erhalten, aber Sie bemerken möglicherweise eine DeprecationWarning um den executable_path.

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

Um damit fertig zu werden, müssen wir das Modul webdriver-manager installieren, um Browserinteraktionen mit dem Befehl pip zu verarbeiten.

pip install webdriver-manager

Importieren Sie anschließend das Modul mithilfe der folgenden Anweisungen in Ihren Code.

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

Und verwenden Sie das Attribut service anstelle von executable_path und übergeben Sie die Methoden Service() und ChromeDriverManager() an das Attribut service.

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

Jetzt wird der Code zu:

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

Ausgang:

[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

Da es das erste Mal ausgeführt wird, sehen Sie möglicherweise den Teil [WDM] der Ausgabe; Andernfalls sollten nur die Meldung DevTools und Ihre Codeausgabe sichtbar sein. Damit können Sie mithilfe des Python-Clients leicht überprüfen, ob ein Element in Selenium vorhanden ist.

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

Verwandter Artikel - Python Selenium