Välj radioknapp och markeraBox in Selenium

⚡ Smart sammanfattning

Välj radioknapp och markeraBox in Selenium behandlar WebDriver-teknikerna för att automatisera två av de vanligaste formulärkontrollerna. Den här handledningen förklarar hur metoderna click() och isSelected() växlar mellan alternativ och kryssrutor, och guidar genom hur man arbetar Java kod och delar felsökningstips för ömtåliga lokaliseringsanordningar.

  • 🔘 Radioknapp Toggle: Använd click()-metoden på WebElement för att välja en alternativknapp; om du väljer ett annat alternativ avmarkeras automatiskt det föregående.
  • ☑️ Kryssruta Toggle: Samma click()-metod aktiverar och inaktiverar en kryssruta; två anrop återställer rutan till sitt ursprungliga tillstånd.
  • Statlig verifiering: Anropa isSelected() för att bekräfta det aktuella växlingsläget och ange SANT för markerade kontroller och FALSKT för omarkerade kontroller.
  • 🧪 Arbeta Java Exempel: Det kompletta programmet driver Guru99 demo och kryssruta för persistent login på Facebook för att demonstrera båda flödena.
  • 🛠️ Pålitliga lokaliseringsföretag: Växla till By.xpath() eller By.cssSelector() när id:n ändras dynamiskt och lägg till explicita väntetider för att förhindra NoSuchElementException.

Välj radioknapp och markeraBox in Selenium

Radioknapp in Selenium

Radioknappar slås på med hjälp av click() metod, precis som alla andra WebElement i SeleniumEftersom endast ett alternativ i en radiogrupp kan vara aktivt åt gången, avmarkeras det första automatiskt om du klickar på ett andra alternativ.

Använda https://demo.guru99.com/test/radio.html som en övningssida, observera att radio1.click() väljer alternativknappen ”Alternativ 1”. Ringer radio2.click() väljer sedan "Alternativ 2" medan "Alternativ 1" lämnas omarkerat.

Val av radioknapp på Guru99 demosida

Hur man markerar en kryssruta i Selenium

TogglAtt markera eller avmarkera en kryssruta görs också med hjälp av click() metod. Koden nedan klickar två gånger på Facebooks kryssruta "Håll mig inloggad" och skriver ut SANT när kryssrutan är aktiverad och FALSKT när den är avaktiverad.

Selenium kod genom att klicka på kryssrutan Håll mig inloggad på Facebook

Konsolutdata visar växlingsläge för kryssruta

Ocuco-landskapet isSelected() Metoden används för att bekräfta om en kryssruta är aktiverad eller avaktiverad – en viktig påstående vid validering av formulärets tillstånd i testfall.

Här är en annan exempelsida: https://demo.guru99.com/test/radio.html.

Selenium kod som verifierar kryssrutans tillstånd med isSelected()

Komplett Code Exempelvis

Här är den kompletta fungerande koden som växlar mellan både radioknappar och kryssrutan för persistent-login 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();
    }
}

Felsökning

Om du stöter på NoSuchElementException När man söker efter element betyder det att elementet inte fanns när WebDriver öppnade sidan. Använd checklistan nedan för att snabbt återställa:

  1. Kontrollera din positionerare igen med FirePath eller Inspect Element i Chrome.
  2. Bekräfta att värdet du använde i koden matchar elementets aktuella värde på sidan.
  3. Vissa element har dynamiska attribut, liknande de du kan se när du välj en rullgardinsmeny i Selenium webbdrivrutinI dessa fall, föredra By.xpath() or By.cssSelector(), som är mer tillförlitliga men något mer komplexa.
  4. Ibland är problemet timing – WebDriver körde din kod innan sidan slutfördes läsning.
  5. Lägg till en väntetid före findElement() använda implicita eller explicita väntetider för att ge elementet tid att renderas.

Vanliga frågor

Anropa click() på samma kryssruta WebElement för att avaktivera den. Det finns ingen dedikerad avmarkeringsmetod. Använd isSelected() innan du klickar om du bara vill avmarkera när kryssrutan är markerad, vilket skyddar testlogiken.

isSelected() returnerar sant när en kryssruta eller radioknapp är markerad. isEnabled() returnerar sant när ett element kan ta emot användarinmatning. De tjänar olika syften: isSelected() validerar tillstånd, medan isEnabled() validerar om elementet accepterar interaktion.

Använd findElements() med en locator som By.xpath(“//input[@type='checkbox']”) för att hämta alla kryssrutor i WebElements, loopa igenom listan, markera isSelected() och anropa click() endast på de som är avmarkerade. Detta undviker att av misstag avmarkera redan markerade rutor.

AI-assistenter genererar lokaliseringsstrategier, självläkar selektorer när id:n ändras och föreslår påståenden för radio- och kryssrutestatus. AI-verktyg genererar också automatiskt kompletta formulärfyllningstester från skärminspelningar, vilket minskar manuell kodning och testunderhåll.

Ja. AI-driven Selenium Verktyg analyserar DOM, lär sig stabila attribut och skriver om XPath- eller CSS-selektorer när id:n ändras mellan utgåvor. Denna självläkande funktion gör att formkontrolltester kan klaras utan manuella uppdateringar av lokaliseringen efter varje UI-justering.

Sammanfatta detta inlägg med: