Hogyan válasszuk ki az értéket a legördülő menüből Selenium

⚡ Okos összefoglaló

Válasszon értéket a legördülő menüből Selenium a dedikált Select osztályt használja a HTML SELECT elemek vezérléséhez. Az osztály elérhetővé teszi a selectByVisibleText, selectByValue és selectByIndex metódusokat, amelyek pontosan kiválasztják a beállításokat, és támogatják a többszörös kijelölésű legördülő menüket.

  • 📦 Importálja a csomagot: Hozd be az org.openqa.selenium.support.ui elemet. Válaszd ki és csomagold be a WebElement elemet, mielőtt bármilyen kijelölő metódust meghívnál.
  • 🎯 Válassza ki a megfelelő módszert: Válassza a selectByVisibleText, selectByValue vagy selectByIndex lehetőséget attól függően, hogy a megjelenített szöveg, az értékattribútum vagy a pozíció a legstabilabb.
  • 🔁 Többszörös kijelölésű legördülő menük kezelése: Az isMultiple paraméterrel észlelheted őket, a deselectAll vagy a deselectByVisibleText paraméterrel pedig törölheted az előző választásokat.
  • A kiválasztás ellenőrzése: A getFirstSelectedOption függvény meghívásával ellenőrizhetjük, hogy a teszt valóban megváltoztatta-e a legördülő menü állapotát.
  • 🤖 Használjon mesterséges intelligenciával működő helymeghatározókat: Az önjavító AI-lokátorok kijavítják a hibás select-elem XPath útvonalakat a felhasználói felület módosítása után, keeping a legördülő tesztek stabilak a kiadásokon át.

Válasszon értéket a legördülő menüből Selenium

Mi a Select Class a következőben: Selenium?

Az Válasszon osztályt itt: Selenium egy segítő osztály a org.openqa.selenium.support.ui csomag, amely lehetővé teszi a WebDriver HTML-lel való interakcióját <select> elemek. Metódusokat tesz elérhetővé a látható szöveg, érték vagy index alapján történő opciók kiválasztásához és kiválasztásának megszüntetéséhez, valamint annak észleléséhez, hogy egy legördülő menü elfogad-e több kijelölést.

Mivel Select rendszeresen jár Java osztályban létrehozol egy példányt a new kulcsszót, és adja át a WebElement-et, amely a következőre mutat: <select> címkét az oldalon.

Hogyan válasszuk ki a legördülő menüt Selenium

Mielőtt egy legördülő menüt kezelnénk Selenium, két lépésre van szükség:

  1. Importálja a csomagot org.openqa.selenium.support.ui.Select.
  2. Hozza létre a legördülő menüt egy példányként Select tárgy be Selenium WebDriver.

Példaként nyissa meg a Mercury Tours regisztrációs oldala (https://demo.guru99.com/test/newtours/register.php) és keresse meg az „Ország” legördülő menüt.

Válassza a Legördülő menüt Selenium

1. lépés) Importálja a Select csomagot.

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

2. lépés) Deklarálja a legördülő elemet a Select osztály példányaként. Az alábbi példában a példány neve drpCountry.

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

3. lépés) Kezdje el a legördülő menü vezérlését. Használjon bármelyik Select metódust egy opció kiválasztásához. Az alábbi példa az „ANTARKTISZ” lehetőséget választja:

drpCountry.selectByVisibleText("ANTARCTICA");

Válassza a Methods in lehetőséget Selenium

A Select osztály számos metódust biztosít a legördülő menük opcióival való interakcióhoz. Az öt leggyakoribbat az alábbiakban ismertetjük.

1) selectByVisibleText() és deselectByVisibleText()

  • Kijelöli vagy megszünteti a paraméterrel megegyező megjelenített szövegű opció kijelölését.
  • Paraméter: a beállításhoz megjelenített pontos szöveg.

Példa:

drpCountry.selectByVisibleText("ANTARCTICA");

2) selectByValue() és deselectByValue() függvények

  • Kijelöli vagy megszünteti a kijelölését annak a lehetőségnek, amelynek value az attribútum megegyezik a paraméterrel.
  • Vegye figyelembe, hogy a megjelenített szöveg és a value az attribútumok gyakran eltérőek, ahogy az alább látható.
  • Paraméter: az opció value tulajdonság.

selectByValue és deselectByValue

Példa:

drpCountry.selectByValue("234");

3) selectByIndex() és deselectByIndex() függvények

  • Kijelöli vagy megszünteti a kijelölést az adott indexnél. Az indexek nulla alapúak.
  • Paraméter: az opció egészértékű indexe.

Példa:

drpCountry.selectByIndex(0);

4) Többszörös()

  • Visszatér TRUE ha a legördülő menü egyszerre több kiválasztást is lehetővé tesz, egyébként FALSE.
  • Paraméter: egyik sem.

Példa:

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

5) deselectAll()

  • Törli az összes kijelölt opciót. Csak több elemet tartalmazó legördülő menük esetén érvényes.
  • Paraméter: egyik sem.

Példa:

drpCountry.deselectAll();

teljes Code a Select Methods-ból Selenium

A következő Java A program bemutatja a Select osztályt egyetlen kijelölésű és több kijelölésű legördülő menüben is.

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);
    }
}

Elemek kijelölése egy Többszörös SELECT elemben

Az selectByVisibleText() A metódus többszörös kijelölésű legördülő menüknél is működik. Példaként használhatja a következőt: https://jsbin.com/osebed/2 mint az alap URLMegjelenik egy legördülő menü, amely egyszerre több kijelölést is elfogad.

Elemek kijelölése többszörös kijelölésű elemben

Az alábbi kódrészlet az első két lehetőséget választja ki a következő használatával: selectByVisibleText():

Elemek kiválasztása többszörös kiválasztású elemkódban

Módszerreferencia-táblázat

Ez a táblázat összefoglalja a fent tárgyalt Select osztályú metódusokat a gyors keresés érdekében.

parancs Leírás
selectByVisibleText() / deselectByVisibleText() Kijelölt szöveg alapján választ ki vagy szünteti meg a kijelölést egy opciónál.
selectByValue() / deselectByValue() Kijelöl vagy megszüntet egy opciót a value tulajdonság.
selectByIndex() / deselectByIndex() Nulla alapú indexe alapján választ ki vagy szünteti meg egy opció kijelölését.
isMultiple() IGAZ értéket ad vissza, ha a legördülő menü több kiválasztást is lehetővé tesz, egyébként HAMIS értéket.
deselect All() Megszünteti az összes korábban kijelölt opció kijelölését egy többszörös kijelölésű legördülő menüben.

A legördülő menük kezeléséhez importálja a org.openqa.selenium.support.ui.Select először a csomagot, majd hozz létre egy Select példányt, és hívd meg a fenti metódusok bármelyikét.

GYIK

A Select osztály egy Selenium HTML SELECT elemek segédje. Becsomagol egy WebElement elemet, és elérhetővé teszi a selectByVisibleText, selectByValue, selectByIndex, isMultiple és deselectAll elemeket a legördülő menük automatikus megjelenítéséhez.

A selectByValue attribútumot akkor részesítsd előnyben, ha a value attribútum stabil, mivel a címkék gyakran változnak a lokalizáció miatt. Használd a selectByVisibleText attribútumot, ha a szöveg mérvadó, és kerüld a selectByIndex attribútumot, ha az opciók sorrendje változhat.

A Select osztály csak valódi HTML SELECT tageken működik. Ha a WebElement egy div, ul vagy egyéni widget, amely legördülő menühöz hasonlóan néz ki, akkor a WebElement.click() függvénnyel vagy az Actions API-val kell a beállításokra kattintani.

Hívd meg a getFirstSelectedOption() függvényt a Select példányon, és állítsd be a getText() értékét. Többszörös kijelölést tartalmazó legördülő menük esetén ismételd meg a getAllSelectedOptions() függvényt, és hasonlítsd össze a visszaadott listát a várt kiválasztásokkal.

Igen. Az isMultiple() függvénnyel ellenőrizd, hogy a legördülő menü több értéket is engedélyez-e, majd hívd meg többször a selectByVisibleText függvénnyel, vagy a deselectAll() függvénnyel állítsd vissza az eredeti értékét. A többszörös kijelölést lehetővé tevő legördülő menükhöz a HTML SELECT elemnek kell deklarálnia a multiple attribútumot.

Használd a WebDriverWait metódust az ExpectedConditions.numberOfElementsToBeMoreThan paraméterrel az opciókeresőben. Ez biztosítja, hogy az aszinkron módon feltöltött legördülő menük készen álljanak a Select osztály példányosítása és bármely kiválasztási metódus meghívása előtt.

A mesterséges intelligenciával működő önjavító lokátorok észlelik, ha egy SELECT elem azonosítója, neve vagy XPath paramétere megváltozott, és egy működő alternatívára váltanak. Csökkentik a felhasználói felület újratervezése utáni, egyenetlen legördülő menük hibáit a folyamatokban.

Igen. A mesterséges intelligencia által fejlesztett kódolási asszisztensek egy egyszerű angol kérést, például a „válasszon országot: ANTARCTICA a regisztrációs oldalon” kifejezést, egy teljes Select példányná alakítanak a megfelelő lokátorral, selectByVisibleText hívással és egy ellenőrző állítással.

Foglald össze ezt a bejegyzést a következőképpen: