So wählen Sie einen Wert aus der Dropdown-Liste aus in Selenium

⚡ Intelligente Zusammenfassung

Wert aus Dropdown-Menü auswählen Selenium Diese Methode verwendet die spezielle Select-Klasse zur Steuerung von HTML-SELECT-Elementen. Die Klasse stellt die Methoden selectByVisibleText, selectByValue und selectByIndex bereit, mit denen Optionen präzise ausgewählt und Mehrfachauswahl-Dropdowns unterstützt werden können.

  • 📦 Importieren Sie das Paket: Bringen Sie org.openqa.selenium.support.ui.Select ein und umschließen Sie das WebElement, bevor Sie eine Auswahlmethode aufrufen.
  • 🎯 Wählen Sie die richtige Methode: Wählen Sie selectByVisibleText, selectByValue oder selectByIndex je nachdem, ob der Anzeigetext, das Wertattribut oder die Position am stabilsten ist.
  • 🔁 Mehrfachauswahl-Dropdown-Listen verarbeiten: Verwenden Sie isMultiple, um sie zu erkennen, und deselectAll oder deselectByVisibleText, um vorherige Auswahlen zu löschen.
  • Überprüfen Sie die Auswahl: Rufen Sie getFirstSelectedOption auf, um zu bestätigen, dass der Test den Zustand der Dropdown-Liste tatsächlich geändert hat.
  • 🤖 KI-Ortungsfunktionen nutzen: Selbstheilende KI-Locators reparieren nach UI-Änderungen beschädigte XPath-Ausdrücke zur Elementauswahl.ping Dropdown-Tests sind über alle Versionen hinweg stabil.

Wert aus Dropdown-Menü auswählen Selenium

Was ist die Select-Klasse in Selenium?

Das Klasse auswählen in Selenium ist eine Helferklasse aus der org.openqa.selenium.support.ui Paket, das es WebDriver ermöglicht, mit HTML zu interagieren <select> Elemente. Es stellt Methoden bereit, um Optionen anhand des sichtbaren Textes, des Werts oder des Index auszuwählen und abzuwählen sowie um zu erkennen, ob eine Dropdown-Liste Mehrfachauswahlen zulässt.

Parce que Select ist eine regelmäßige Java Wenn Sie eine Klasse erstellen, erstellen Sie eine Instanz mit der new Schlüsselwort und übergeben Sie das WebElement, das auf das <select> Tag auf der Seite.

So wählen Sie Dropdown in aus Selenium

Bevor Sie ein Dropdown-Menü bearbeiten SeleniumEs sind zwei Schritte erforderlich:

  1. Importieren Sie das Paket org.openqa.selenium.support.ui.Select.
  2. Instanziiere das Dropdown-Menü als Select Objekt in Selenium WebDriver.

Öffnen Sie beispielsweise die Mercury Anmeldeseite für Touren (https://demo.guru99.com/test/newtours/register.php) und suchen Sie das Dropdown-Menü „Land“.

Wählen Sie Dropdown in aus Selenium

Schritt 1) ​​Importieren Sie das Select-Paket.

import org.openqa.selenium.support.ui.Select;

Schritt 2) Deklarieren Sie das Dropdown-Element als Instanz der Select-Klasse. Im folgenden Beispiel heißt die Instanz: drpCountry.

Select drpCountry = new Select(driver.findElement(By.name("country")));

Schritt 3) Beginnen Sie mit der Steuerung des Dropdown-Menüs. Verwenden Sie eine beliebige Auswahlmethode, um eine Option auszuwählen. Das folgende Beispiel wählt „ANTARKTIS“ aus:

drpCountry.selectByVisibleText("ANTARCTICA");

Wählen Sie Methoden in aus Selenium

Die Select-Klasse bietet verschiedene Methoden zur Interaktion mit Dropdown-Optionen. Die fünf gebräuchlichsten werden im Folgenden beschrieben.

1) selectByVisibleText() und deselectByVisibleText()

  • Wählt die Option aus oder hebt die Auswahl auf, deren angezeigter Text mit dem Parameter übereinstimmt.
  • Parameter: Der genaue Text, der für die Option angezeigt wird.

Ejemplo:

drpCountry.selectByVisibleText("ANTARCTICA");

2) selectByValue() und deselectByValue()

  • Wählt die Option aus oder hebt die Auswahl auf, deren value Das Attribut entspricht dem Parameter.
  • Beachten Sie, dass der angezeigte Text und der value Die Attribute sind oft unterschiedlich, wie unten dargestellt.
  • Parameter: die Option value Attribut.

selectByValue und deselectByValue

Ejemplo:

drpCountry.selectByValue("234");

3) selectByIndex() und deselectByIndex()

  • Wählt die Option am angegebenen Index aus oder hebt die Auswahl auf. Die Indizes beginnen bei null.
  • Parameter: der ganzzahlige Index der Option.

Ejemplo:

drpCountry.selectByIndex(0);

4) isMultiple()

  • Rücksendungen TRUE wenn die Dropdown-Liste mehrere gleichzeitige Auswahlen zulässt, andernfalls FALSE.
  • Parameter: keine.

Ejemplo:

if (drpCountry.isMultiple()) {
    // do something here
}

5) deselectAll()

  • Löscht alle ausgewählten Optionen. Nur gültig bei Mehrfachauswahl-Dropdown-Listen.
  • Parameter: keine.

Ejemplo:

drpCountry.deselectAll();

Komplett Code von Auswahlmethoden in Selenium

Folgende Java Das Programm demonstriert die Select-Klasse sowohl an einem Dropdown-Menü mit einfacher Auswahl als auch an einem Dropdown-Menü mit Mehrfachauswahl.

package newpackage;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.By;

public class accessDropDown {
    public static void main(String[] args) {
        System.setProperty("webdriver.gecko.driver", "C:\\geckodriver.exe");
        String baseURL = "https://demo.guru99.com/test/newtours/register.php";
        WebDriver driver = new FirefoxDriver();
        driver.get(baseURL);

        // Single-select drop-down
        Select drpCountry = new Select(driver.findElement(By.name("country")));
        drpCountry.selectByVisibleText("ANTARCTICA");

        // Multi-select drop-down
        driver.get("http://jsbin.com/osebed/2");
        Select fruits = new Select(driver.findElement(By.id("fruits")));
        fruits.selectByVisibleText("Banana");
        fruits.selectByIndex(1);
    }
}

Auswählen von Elementen in einem Mehrfachauswahlfeld

Das selectByVisibleText() Diese Methode funktioniert auch bei Mehrfachauswahl-Dropdown-Listen. Verwenden Sie beispielsweise https://jsbin.com/osebed/2 als Base URLEs wird ein Dropdown-Menü angezeigt, das die gleichzeitige Auswahl mehrerer Elemente ermöglicht.

Auswählen von Elementen in einem Mehrfachauswahlfeld

Der unten stehende Codeausschnitt wählt die ersten beiden Optionen aus. selectByVisibleText():

Auswählen von Elementen in einem Mehrfachauswahl-Element (Code)

Methodenreferenztabelle

Diese Tabelle fasst alle oben beschriebenen Select-Klassenmethoden zum schnellen Nachschlagen zusammen.

Befehl Beschreibung
selectByVisibleText() / deselectByVisibleText() Wählt eine Option anhand ihres angezeigten Textes aus oder hebt die Auswahl auf.
selectByValue() / deselectByValue() Wählt eine Option anhand ihres Namens aus oder hebt die Auswahl auf. value Attribut.
selectByIndex() / deselectByIndex() Wählt eine Option anhand ihres nullbasierten Index aus oder hebt die Auswahl auf.
isMultiple() Gibt TRUE zurück, wenn die Dropdown-Liste Mehrfachauswahl zulässt, andernfalls FALSE.
Alle abwählen() Hebt die Auswahl aller zuvor ausgewählten Optionen in einer Mehrfachauswahlliste auf.

Um Dropdown-Felder zu steuern, importieren Sie die org.openqa.selenium.support.ui.Select Zuerst das Paket erstellen, dann eine Select-Instanz erstellen und eine der oben genannten Methoden aufrufen.

Häufig gestellte Fragen

Die Select-Klasse ist eine Selenium Hilfsfunktion für HTML-SELECT-Elemente. Sie umschließt ein WebElement und stellt selectByVisibleText, selectByValue, selectByIndex, isMultiple und deselectAll für eine saubere Dropdown-Automatisierung bereit.

Verwenden Sie `selectByValue`, wenn das Wertattribut stabil ist, da sich Bezeichnungen häufig für die Lokalisierung ändern. Nutzen Sie `selectByVisibleText`, wenn der Text maßgebend ist, und vermeiden Sie `selectByIndex`, wenn sich die Reihenfolge der Optionen ändern kann.

Die Select-Klasse funktioniert nur mit echten HTML-SELECT-Tags. Wenn es sich bei dem WebElement um ein div- oder ul-Element oder ein benutzerdefiniertes Widget handelt, das wie ein Dropdown-Menü gestaltet ist, müssen Sie die Optionen stattdessen über WebElement.click() oder die Actions API auswählen.

Rufen Sie `getFirstSelectedOption()` für die Select-Instanz auf und überprüfen Sie deren `getText()`-Wert. Bei Mehrfachauswahl-Dropdowns iterieren Sie über `getAllSelectedOptions()` und vergleichen die zurückgegebene Liste mit den erwarteten Auswahlen.

Ja. Verwenden Sie `isMultiple()`, um zu prüfen, ob das Dropdown-Menü mehrere Werte zulässt. Rufen Sie anschließend `selectByVisibleText` mehrmals auf oder `deselectAll()`, um die Auswahl zurückzusetzen. Für Mehrfachauswahl-Dropdown-Menüs muss das HTML-SELECT-Element das Attribut `multiple` deklarieren.

Verwenden Sie WebDriverWait mit ExpectedConditions.numberOfElementsToBeMoreThan für den Options-Locator. Dadurch wird sichergestellt, dass asynchron befüllte Dropdown-Listen bereit sind, bevor die Select-Klasse instanziiert und eine Auswahlmethode aufgerufen wird.

KI-gestützte, selbstheilende Locatoren erkennen, wenn sich die ID, der Name oder der XPath eines SELECT-Elements geändert hat, und wechseln zu einer funktionierenden Alternative. Sie reduzieren fehlerhafte Dropdown-Menüs in Pipelines nach UI-Relaunches.

Ja. KI-Codierungsassistenten wandeln eine einfache englische Anfrage wie „Wählen Sie Land ANTARKTIS auf der Registrierungsseite aus“ in eine vollständige Select-Instanz mit dem richtigen Locator, dem selectByVisibleText-Aufruf und einer Verifizierungsbestätigung um.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: