Selecteer keuzerondje en vink aanBox in Selenium

โšก Slimme samenvatting

Selecteer keuzerondje en vink aanBox in Selenium Deze handleiding behandelt de WebDriver-technieken voor het automatiseren van twee van de meest voorkomende formulierbesturingselementen. De handleiding legt uit hoe de methoden `click()` en `isSelected()` keuzerondjes en selectievakjes in- en uitschakelen en laat zien hoe dit werkt. Java code, en deelt tips voor het oplossen van problemen met kwetsbare locators.

  • ๐Ÿ”˜ Radio knop Toggle: Gebruik de click()-methode op het WebElement om een โ€‹โ€‹keuzeknop te selecteren; als u een andere optie selecteert, wordt de vorige automatisch gedeselecteerd.
  • โ˜‘๏ธ checkbox Toggle: Dezelfde click()-methode schakelt een selectievakje in en uit; als je deze twee keer aanroept, keert het selectievakje terug naar de oorspronkelijke staat.
  • โœ… Staatsverificatie: Roep isSelected() aan om de huidige schakelstatus te bevestigen en stel TRUE in voor aangevinkte besturingselementen en FALSE voor niet-aangevinkte besturingselementen.
  • ๐Ÿงช Werkzaam Java Voorbeeld: Het complete programma stuurt de Guru99 demo en het selectievakje voor permanente aanmelding op Facebook om beide workflows te demonstreren.
  • ๏ธ Betrouwbare lokalisatiediensten: Schakel over naar By.xpath() of By.cssSelector() wanneer id's dynamisch veranderen en voeg expliciete wachttijden toe om NoSuchElementException te voorkomen.

Selecteer keuzerondje en vink aanBox in Selenium

Keuzerondje in Selenium

Keuzeknoppen worden in- en uitgeschakeld met behulp van de click() methode, net als elk ander WebElement in SeleniumOmdat er in een radiogroep maar รฉรฉn optie tegelijk actief kan zijn, wordt de eerste optie automatisch gedeselecteerd wanneer u op een tweede optie klikt.

gebruik https://demo.guru99.com/test/radio.html Let op, dit is een oefenpagina. radio1.click() selecteert het keuzeradiobutton "Optie 1". Bellen radio2.click() vervolgens selecteert hij "Optie 2" en laat "Optie 1" ongeselecteerd.

Keuzeknopselectie op de Guru99 demopagina

Hoe selecteer je een selectievakje in Selenium

TogglHet in- of uitschakelen van een selectievakje gebeurt ook met behulp van de click() methode. De onderstaande code klikt twee keer op het selectievakje "Ingelogd blijven" van Facebook en print TRUE wanneer het selectievakje is ingeschakeld en FALSE wanneer het is uitgeschakeld.

Selenium code door het selectievakje 'Ingelogd blijven' van Facebook aan te vinken

Console-uitvoer die de status van het selectievakje weergeeft

De isSelected() Deze methode wordt gebruikt om te bevestigen of een selectievakje is in- of uitgeschakeld โ€“ een belangrijke controle bij het valideren van de formulierstatus in testgevallen.

Hier is nog een voorbeeldpagina: https://demo.guru99.com/test/radio.html.

Selenium Code die de status van een selectievakje controleert met isSelected().

Volledige Code Voorbeeld

Hier is de complete werkende code waarmee zowel de keuzeknoppen als het selectievakje voor het permanent inloggen op Facebook kunnen worden in- of uitgeschakeld.

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

Problemen oplossen

Als je tegenkomt NoSuchElementException Als er een element wordt gevonden, betekent dit dat het element niet aanwezig was op het moment dat WebDriver de pagina opende. Gebruik de onderstaande checklist om het probleem snel op te lossen:

  1. Controleer je locator opnieuw met FirePath of Inspect Element in Chrome.
  2. Controleer of de waarde die u in de code hebt gebruikt overeenkomt met de huidige waarde van het element op de pagina.
  3. Sommige elementen hebben dynamische attributen, vergelijkbaar met wat je ziet wanneer je selecteer een dropdown in Selenium webdriverIn die gevallen is het beter om de voorkeur te geven aan... By.xpath() or By.cssSelector()die betrouwbaarder zijn, maar iets complexer.
  4. Soms ligt het probleem aan de timing: de WebDriver heeft je code uitgevoerd voordat de pagina volledig geladen was.
  5. Voeg een wachttijd toe voordat findElement() Door impliciete of expliciete wachttijden te gebruiken, krijgt het element de tijd om te renderen.

Veelgestelde vragen

Roep de `click()`-methode aan op hetzelfde checkbox-WebElement om het uit te schakelen. Er is geen aparte methode om het te deselecteren. Gebruik `isSelected()` vรณรณr het klikken als u het alleen wilt deselecteren wanneer het selectievakje momenteel is aangevinkt. Dit zorgt ervoor dat de testlogica veilig blijft.

`isSelected()` retourneert `true` wanneer een selectievakje of keuzerondje is aangevinkt. `isEnabled()` retourneert `true` wanneer een element gebruikersinvoer kan ontvangen. Ze dienen verschillende doelen: `isSelected()` valideert de status, terwijl `isEnabled()` valideert of het element interactie accepteert.

Gebruik findElements() met een locator zoals By.xpath(โ€œ//input[@type='checkbox']โ€) om alle checkbox WebElements te vinden, doorloop de lijst, controleer isSelected() en roep click() alleen aan op de elementen die niet zijn aangevinkt. Dit voorkomt dat per ongeluk al aangevinkte vakjes worden gedeselecteerd.

AI-assistenten genereren lokalisatiestrategieรซn, herstellen selectiecriteria automatisch wanneer ID's veranderen en suggereren beweringen voor de status van radioknoppen en selectievakjes. AI-tools genereren ook automatisch end-to-end formulierinvultests op basis van schermopnames, waardoor handmatige codering en het onderhoud van tests worden verminderd.

Ja. Aangedreven door AI. Selenium De tools analyseren de DOM, leren stabiele attributen en herschrijven XPath- of CSS-selectors wanneer ID's veranderen tussen releases. Dankzij deze zelfherstellende functie blijven tests van formulierbesturingselementen slagen zonder dat handmatige updates van de locator nodig zijn na elke aanpassing aan de gebruikersinterface.

Vat dit bericht samen met: