Vælg radioknap og markerBox in Selenium

⚡ Smart opsummering

Vælg radioknap og markerBox in Selenium dækker WebDriver-teknikkerne til automatisering af to af de mest almindelige formularkontroller. Denne vejledning forklarer, hvordan metoderne click() og isSelected() slår radioer og afkrydsningsfelter til/fra, og gennemgår arbejdsmetoder. Java kode og deler fejlfindingstips til skrøbelige lokaliseringsinstrumenter.

  • 🔘 Radio knap Toggle: Brug click()-metoden på WebElementet til at vælge en radioknap; valg af en anden indstilling fravælger automatisk den forrige.
  • ☑️ Afkrydsningsfelt Toggle: Den samme click()-metode slår et afkrydsningsfelt til og fra; to kald vender feltet tilbage til dets oprindelige tilstand.
  • ✅ Statsbekræftelse: Kald isSelected() for at bekræfte den aktuelle til/fra-tilstand og angiv TRUE for markerede og FALSE for ikke-markerede kontrolelementer.
  • 🧪 Arbejde Java Eksempel: Det komplette program driver Guru99 demo og Facebook persist-login afkrydsningsfelt for at demonstrere begge flows.
  • 🛠️ Pålidelige lokaliseringssteder: Skift til By.xpath() eller By.cssSelector(), når id'er ændres dynamisk, og tilføj eksplicitte ventetider for at forhindre NoSuchElementException.

Vælg radioknap og markerBox in Selenium

Radioknap ind Selenium

Radioknapper slås til ved hjælp af click() metode, ligesom ethvert andet WebElement i SeleniumDa kun én indstilling i en alternativgruppe kan være aktiv ad gangen, fravælges den første automatisk, hvis du klikker på en anden indstilling.

Ved brug af https://demo.guru99.com/test/radio.html som en øvelsesside, bemærk at radio1.click() vælger alternativknappen “Valgmulighed1”. Opkald radio2.click() vælger derefter "Valgmulighed2", mens "Valgmulighed1" ikke er valgt.

Valg af radioknap på Guru99 demoside

Sådan vælger du et afkrydsningsfelt i Selenium

TogglAt slå et afkrydsningsfelt til eller fra gøres også ved hjælp af click() metode. Koden nedenfor klikker to gange på Facebooks afkrydsningsfelt "Hold mig logget ind" og udskriver SAND, når afkrydsningsfeltet er slået til, og FALSK, når det er slået fra.

Selenium kode ved at klikke på afkrydsningsfeltet "Hold mig logget ind" på Facebook

Konsoloutput viser afkrydsningsfelts til/fra-tilstand

isSelected() Metoden bruges til at bekræfte, om et afkrydsningsfelt er slået til eller fra – en vigtig påstand ved validering af formulartilstand i testtilfælde.

Her er en anden eksempelside: https://demo.guru99.com/test/radio.html.

Selenium Kode der verificerer afkrydsningsfelts tilstand med isSelected()

Komplet Code Eksempel

Her er den komplette fungerende kode, der slår både radioknapper og afkrydsningsfeltet "persist-login" til og fra på Facebook.

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.*;

public class Form {
    public static void main(String[] args) {

        // Declaration and instantiation of objects and variables
        System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get("https://demo.guru99.com/test/radio.html");
        WebElement radio1 = driver.findElement(By.id("vfb-7-1"));
        WebElement radio2 = driver.findElement(By.id("vfb-7-2"));

        // Radio Button 1 is selected
        radio1.click();
        System.out.println("Radio Button Option 1 Selected");

        // Radio Button 1 is de-selected and Radio Button 2 is selected
        radio2.click();
        System.out.println("Radio Button Option 2 Selected");

        // Selecting Checkbox
        WebElement option1 = driver.findElement(By.id("vfb-6-0"));

        // This will toggle the checkbox
        option1.click();

        // Check whether the checkbox is toggled on
        if (option1.isSelected()) {
            System.out.println("Checkbox is Toggled On");
        } else {
            System.out.println("Checkbox is Toggled Off");
        }

        // Selecting a Checkbox and using the isSelected method
        driver.get("https://demo.guru99.com/test/facebook.html");
        WebElement chkFBPersist = driver.findElement(By.id("persist_box"));
        for (int i = 0; i < 2; i++) {
            chkFBPersist.click();
            System.out.println("Facebook Persists Checkbox Status is - " + chkFBPersist.isSelected());
        }
        // driver.close();
    }
}

Fejlfinding

Hvis du støder på NoSuchElementException Når man finder elementer, betyder det, at elementet ikke var til stede, da WebDriveren tilgik siden. Brug tjeklisten nedenfor til at gendanne hurtigt:

  1. Tjek din lokator igen ved hjælp af FirePath eller Inspect Element i Chrome.
  2. Bekræft, at den værdi, du brugte i koden, matcher den aktuelle værdi af elementet på siden.
  3. Nogle elementer har dynamiske egenskaber, der ligner dem, du ser, når du vælg en rullemenu i Selenium webdriverI disse tilfælde foretrækkes By.xpath() or By.cssSelector(), som er mere pålidelige, men lidt mere komplekse.
  4. Nogle gange er problemet timingen — WebDriveren udførte din kode, før siden var færdigindlæst.
  5. Tilføj en ventetid før findElement() brug af implicitte eller eksplicitte ventetider for at give elementet tid til at gengives.

Ofte Stillede Spørgsmål

Kald click() på det samme afkrydsningsfelt WebElement for at slå det fra. Der er ingen dedikeret fravælgelsesmetode. Brug isSelected() før du klikker, hvis du kun vil fravælge, når afkrydsningsfeltet aktuelt er markeret, hvilket beskytter testlogikken.

isSelected() returnerer sandt, når et afkrydsningsfelt eller en radioknap er markeret. isEnabled() returnerer sandt, når et element kan modtage brugerinput. De tjener forskellige formål: isSelected() validerer tilstand, mens isEnabled() validerer, om elementet accepterer interaktion.

Brug findElements() med en locator som f.eks. By.xpath(“//input[@type='checkbox']”) til at hente alle afkrydsningsfelter i WebElements, gennemgå listen, marker isSelected(), og kald kun click() på dem, der ikke er markeret. Dette undgår utilsigtet fravælgelse af allerede markerede felter.

AI-assistenter genererer lokaliseringsstrategier, selvreparerende selektorer, når id'er ændres, og foreslår assertions for radio- og afkrydsningsfeltstilstand. AI-værktøjer genererer også automatisk komplette formularudfyldningstests fra skærmoptagelser, hvilket reducerer manuel kodning og testvedligeholdelse.

Ja. AI-drevet Selenium Værktøjer analyserer DOM'en, lærer stabile attributter at kende og omskriver XPath- eller CSS-selektorer, når id'er ændres mellem udgivelser. Denne selvreparerende funktion sikrer, at formularkontroltests bestås uden manuelle opdateringer af locatoren efter hver UI-justering.

Opsummer dette indlæg med: