Kako odabrati vrijednost iz padajućeg izbornika u Selenium

⚡ Pametni sažetak

Odaberite vrijednost iz padajućeg izbornika u Selenium Koristi namjensku klasu Select za kontrolu HTML SELECT elemenata. Klasa izlaže metode selectByVisibleText, selectByValue i selectByIndex koje precizno biraju opcije i podržavaju padajuće izbornike s višestrukim odabirom.

  • ???? Uvezite paket: Unesite org.openqa.selenium.support.ui.Select i omotajte WebElement prije pozivanja bilo koje metode odabira.
  • 🎯 Odaberite pravu metodu: Odaberite selectByVisibleText, selectByValue ili selectByIndex na temelju toga je li tekst prikaza, atribut vrijednosti ili pozicija najstabilniji.
  • 🔁 Obrada padajućih izbornika s višestrukim odabirom: Koristite isMultiple za njihovo otkrivanje i deselectAll ili deselectByVisibleText za brisanje prethodnih odabira.
  • ✅ Potvrdite odabir: Pozovite getFirstSelectedOption kako biste potvrdili da je test zapravo promijenio stanje padajućeg izbornika.
  • 🤖 Koristite AI lokatore: Samoobnavljajući AI lokatori popravljaju oštećene XPath-ove za odabir elemenata nakon promjena korisničkog sučelja, keeping testovi padajućih izbornika stabilni su u svim izdanjima.

Odaberite vrijednost iz padajućeg izbornika u Selenium

Što je odabrana klasa u Selenium?

The Odaberite razred u Selenium je pomoćna klasa iz org.openqa.selenium.support.ui paket koji omogućuje WebDriveru interakciju s HTML-om <select> elementi. Izlaže metode za odabir i poništavanje odabira opcija prema vidljivom tekstu, vrijednosti ili indeksu te za otkrivanje prihvaća li padajući izbornik višestruke odabire.

Jer Select je redovito Java razred, stvarate instancu s new ključnu riječ i proslijedite WebElement koji pokazuje na <select> oznaku na stranici.

Kako odabrati padajući izbornik u Selenium

Prije rukovanja padajućim izbornikom u Selenium, potrebna su dva koraka:

  1. Uvezi paket org.openqa.selenium.support.ui.Select.
  2. Instancirajte padajući izbornik kao Select objekt u Selenium WebDriver.

Kao primjer, otvorite Mercury Stranica za registraciju izleta (https://demo.guru99.com/test/newtours/register.php) i pronađite padajući izbornik "Država".

Odaberite padajući izbornik Selenium

Korak 1) Uvezite paket Select.

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

Korak 2) Deklarirajte padajući element kao instancu klase Select. U donjem primjeru, instanca je nazvana drpCountry.

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

Korak 3) Počnite kontrolirati padajući izbornik. Upotrijebite bilo koju metodu odabira za odabir opcije. Primjer u nastavku odabire „ANTARKTIKA“:

drpCountry.selectByVisibleText("ANTARCTICA");

Odaberite Metode u Selenium

Klasa Select pruža nekoliko metoda za interakciju s padajućim izbornikima. Pet najčešćih opisano je u nastavku.

1) odaberiPoVisibleText() i poništi odabirPoVisibleText()

  • Odabire ili poništava odabir opcije čiji prikazani tekst odgovara parametru.
  • Parametar: točan tekst prikazan za opciju.

Primjer:

drpCountry.selectByVisibleText("ANTARCTICA");

2) odaberiPoVrijednosti() i poništi odabirPoVrijednosti()

  • Odabire ili poništava odabir opcije čija value atribut odgovara parametru.
  • Imajte na umu da prikazani tekst i value atributi se često razlikuju, kao što je prikazano u nastavku.
  • Parametar: opcija value atribut.

odaberiPoVrijednosti i poništi odabirPoVrijednosti

Primjer:

drpCountry.selectByValue("234");

3) odaberiPoIndeksu() i poništi odabirPoIndeksu()

  • Odabire ili poništava odabir opcije na zadanom indeksu. Indeksi se temelje na nuli.
  • Parametar: cjelobrojni indeks opcije.

Primjer:

drpCountry.selectByIndex(0);

4) jeVišestruko()

  • Povratak TRUE ako padajući izbornik omogućuje više odabira istovremeno, inače FALSE.
  • Parametar: nitko.

Primjer:

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

5) poništiSve()

  • Briše svaku odabranu opciju. Vrijedi samo na padajućim izbornicima s višestrukim odabirom.
  • Parametar: nitko.

Primjer:

drpCountry.deselectAll();

potpun Code Odaberite metode u Selenium

Sljedeće Java Program demonstrira klasu Select i na padajućem izborniku za jednostruki i na višestruki odabir.

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

Odabir stavki u višestrukom SELECT elementu

The selectByVisibleText() Metoda također funkcionira na padajućim izbornicima s višestrukim odabirom. Na primjer, koristite https://jsbin.com/osebed/2 kao bazu URLPrikazuje padajući izbornik koji prihvaća više opcija odjednom.

Odabir stavki u elementu višestrukog odabira

Isječak u nastavku odabire prve dvije opcije pomoću selectByVisibleText():

Odabir stavki u kodu za višestruki odabir elemenata

Tablica referentnih metoda

Ova tablica sažima svaku gore opisanu metodu Select-klase za brzo pretraživanje.

naredba Description
odaberiPoVidljivomTekstu() / poništiOdaberiPoVidljivomTekstu() Odabire ili poništava odabir opcije prema prikazanom tekstu.
odaberiPoVrijednosti() / poništiOdaberiPoVrijednosti() Odabire ili poništava odabir opcije prema njenoj value atribut.
odaberiPoIndeksu() / poništiOdaberiPoIndeksu() Odabire ili poništava odabir opcije prema njenom indeksu koji se temelji na nuli.
isMultiple() Vraća TRUE ako padajući izbornik dopušta višestruke odabire, inače vraća FALSE.
odznači sve() Poništava odabir svih prethodno odabranih opcija na padajućem izborniku s višestrukim odabirom.

Za upravljanje padajućim izbornikima, uvezite org.openqa.selenium.support.ui.Select prvo kreirajte paket, zatim kreirajte instancu Select i pozovite bilo koju od gore navedenih metoda.

Pitanja i odgovori

Klasa Select je Selenium Pomoćnik za HTML SELECT elemente. Omotava WebElement i izlaže selectByVisibleText, selectByValue, selectByIndex, isMultiple i deselectAll za čistu automatizaciju padajućih izbornika.

Preferirajte selectByValue kada je atribut value stabilan, jer se oznake često mijenjaju radi lokalizacije. Koristite selectByVisibleText kada je tekst autoritativan i izbjegavajte selectByIndex kada se redoslijed opcija može promijeniti.

Klasa Select radi samo na stvarnim HTML SELECT oznakama. Ako je WebElement div, ul ili prilagođeni widget stiliziran da izgleda kao padajući izbornik, morate kliknuti na opcije putem WebElement.click() ili Actions API-ja.

Pozovite getFirstSelectedOption() na instanci Select i potvrdite njegovu vrijednost getText(). Za padajuće izbornike s višestrukim odabirom, iterirajte getAllSelectedOptions() i usporedite vraćeni popis s očekivanim odabirima.

Da. Koristite isMultiple() kako biste potvrdili da padajući izbornik dopušta više vrijednosti, a zatim pozovite selectByVisibleText više puta ili deselectAll() za resetiranje. Padajući izbornici s višestrukim odabirom zahtijevaju HTML element SELECT za deklariranje atributa multiple.

Koristite WebDriverWait s ExpectedConditions.numberOfElementsToBeMoreThan na lokatoru opcija. To osigurava da su asinkrono popunjeni padajući izbornici spremni prije instanciranja klase Select i pozivanja bilo koje metode odabira.

Lokatori za samoobnavljanje pokretani umjetnom inteligencijom otkrivaju kada se promijeni ID, naziv ili XPath SELECT elementa i prebacuju se na funkcionalnu alternativu. Smanjuju nestabilne greške padajućih izbornika u cjevovodima nakon redizajna korisničkog sučelja.

Da. AI kodirajući asistenti pretvaraju zahtjev na običnom engleskom jeziku poput „odaberite državu ANTARKTIKA na stranici za registraciju“ u potpunu instancu Select s ispravnim lokatorom, pozivom selectByVisibleText i tvrdnjom za provjeru.

Sažmite ovu objavu uz: