Finden Sie Elemente mit Selen in Python

Manav Narula 21 Juni 2023
  1. Finden Sie Elemente mit Selen in Python
  2. Verwenden Sie die Funktion find_elements_by_name(), um Elemente mit Selen in Python zu finden
  3. Verwenden Sie die Funktion find_elements_by_id(), um Elemente mit Selen in Python zu finden
  4. Verwenden Sie die Funktion find_elements_by_xpath(), um Elemente mit Selen in Python zu finden
  5. Verwenden Sie die Funktion find_elements_by_link_text(), um Elemente mit Selen in Python zu finden
  6. Verwenden Sie die Funktion find_elements_by_partial_link_text(), um Elemente mit Selen in Python zu finden
  7. Verwenden Sie die Funktion find_elements_by_tag_name(), um Elemente mit Selen in Python zu finden
  8. Verwenden Sie die Funktion find_elements_by_class_name(), um Elemente mit Selen in Python zu finden
  9. Verwenden Sie die Funktion find_elements_by_css_selector(), um Elemente mit Selen in Python zu finden
  10. Verwenden Sie die Funktion find_elements(), um Elemente mit Selen in Python zu finden
  11. Abschluss
Finden Sie Elemente mit Selen in Python

Das Selenium-Paket in Python wird für die Automatisierung mit Webbrowsern verwendet; Es ist mit fast allen gängigen Browsern kompatibel. Wir können Skripte in Python schreiben, die einige Aufgaben in einem Browser automatisieren.

Dieses Tutorial zeigt verschiedene Methoden, um Elemente auf einer Webseite mit Selen in Python zu finden.

Finden Sie Elemente mit Selen in Python

Die Elemente sind die grundlegenden Konstrukte einer Webseite und werden verwendet, um ihre Struktur zu definieren. Wir können Elemente finden, die verschiedene Funktionen von Selen verwenden.

Diese Funktionen werden verwendet, um die Elemente anhand verschiedener Attribute wie name, xpath, id und mehr zu finden. Wir werden die Methoden verwenden, um Elemente aus dem folgenden HTML-Dokument abzurufen.

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

Beachten Sie, dass, wenn es in keinem Fall Übereinstimmungen gibt, eine NoSuchElementException-Ausnahme ausgelöst wird. Sie alle geben eine Liste der Elemente zurück, in denen die Übereinstimmung gefunden wird.

Die Methoden werden unten diskutiert.

Verwenden Sie die Funktion find_elements_by_name(), um Elemente mit Selen in Python zu finden

Verschiedenen Elementen auf einer Webseite ist ein name-Attribut zugeordnet. Wir können die Funktion find_elements_by_name() verwenden, um die Liste der Elemente abzurufen, die mit dem Wert des Attributs name übereinstimmen.

Siehe Code unten.

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

Lassen Sie uns den obigen Code verstehen.

  1. Wir importieren zuerst die Klasse webdriver, um den Browser für die Automatisierung zu erstellen. In unserem Fall verwenden wir die chromedriver.exe für den Google Chrome-Browser.
  2. Wir rufen die Website, von der wir die Elemente erhalten möchten, mit der Funktion get() ab.
  3. Um die Liste der Elemente zu erhalten, verwenden wir die Funktion find_element_by_name() und geben den Wert für das Attribut name innerhalb der Funktion an.

Beachten Sie, dass der Code für alle unten beschriebenen Methoden gleich bleibt. Lediglich die Funktion zum Abrufen der Elemente (in diesem Fall find_element_by_name()) ändert sich.

Verwenden Sie die Funktion find_elements_by_id(), um Elemente mit Selen in Python zu finden

Das Attribut id kann auch eine Liste von Elementen zurückgeben, die auf einer Webseite gefunden wurden. Dazu können wir die Funktion find_elements_by_id() verwenden.

Zum Beispiel,

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

Verwenden Sie die Funktion find_elements_by_xpath(), um Elemente mit Selen in Python zu finden

Wir können die Pfadausdrücke mit xpath verwenden, um Knoten aus einem Dokument abzurufen. Um Elemente mit dem xpath zu finden, können wir die Funktion find_elements_by_xpath() verwenden.

Der Pfadausdruck wird in der Funktion angegeben.

Zum Beispiel,

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]")

Wir haben Elemente im Dokument, die auf andere Webseiten umleiten können. Dies wird mit dem Tag anchor erreicht.

Mit der Funktion find_elements_by_link_text() können wir die Elemente anhand des Linktextes abrufen.

Siehe Code unten.

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

Diese Funktion ähnelt der vorherigen. Der Unterschied besteht darin, dass es die Elemente zurückgibt, die mit dem Teiltext des Links übereinstimmen.

Zum Beispiel,

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_")

Im obigen Beispiel können wir beobachten, dass wir das Element abrufen konnten, indem wir nur den teilweisen Linktext verwendeten.

Verwenden Sie die Funktion find_elements_by_tag_name(), um Elemente mit Selen in Python zu finden

Jedes Element im HTML-Dokument hat einen Tag-Namen. Um Elemente anhand des Tag-Namens zu finden, können wir in Python das find_element_by_tag_name() verwenden.

Siehe Code unten.

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

Verwenden Sie die Funktion find_elements_by_class_name(), um Elemente mit Selen in Python zu finden

Wir können die Funktion find_elements_by_class_name() verwenden, um die Elemente abzurufen, die einem bestimmten class-Attribut auf einer Webseite entsprechen.

Siehe Code unten.

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

Verwenden Sie die Funktion find_elements_by_css_selector(), um Elemente mit Selen in Python zu finden

Wir können HTML-Elemente mit der CSS-Selektorsyntax formatieren. Die CSS-Selektorsyntax kann auch verwendet werden, um die Elemente mit der Funktion find_elements_by_css_selector() zu finden.

Siehe folgendes Beispiel.

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

Verwenden Sie die Funktion find_elements(), um Elemente mit Selen in Python zu finden

Die Funktion find_elements() ist eine private Methode, die Elemente aus dem HTML-Dokument abrufen kann. Es ist wie der Höhepunkt aller zuvor besprochenen Methoden.

Wir können alle vorherigen Attribute als Parameter verwenden, um die Elemente zu finden.

Zum Beispiel,

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

Das obige Beispiel findet die Elemente mit dem Attribut name wie zuvor.

Abschluss

Wir haben verschiedene Methoden besprochen, um Elemente basierend auf verschiedenen Attributen mit Selen in Python zu finden. Jedes Attribut hat seine Funktion.

Wir können auch die private Methode find_elements verwenden und verschiedene Attribute als Parameter übergeben. Beachten Sie außerdem, dass die Methoden in diesem Artikel eine Liste von Elementen für alle möglichen Übereinstimmungen zurückgeben.

Wenn wir nur ein Element finden müssen, können wir in jeder besprochenen Funktion Elemente durch element ersetzen. Zum Beispiel wird find_elements zu find_element.

Manav Narula avatar Manav Narula avatar

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

Verwandter Artikel - Python Selenium