Sélectionnez le bouton radio et cochezBox in Selenium

⚡ Résumé intelligent

Sélectionnez le bouton radio et cochezBox in Selenium Ce tutoriel aborde les techniques WebDriver permettant d'automatiser deux des contrôles de formulaire les plus courants. Il explique comment les méthodes `click()` et `isSelected()` permettent de basculer entre les boutons radio et les cases à cocher, et détaille leur fonctionnement. Java Il explique le code et partage des conseils de dépannage pour les localisateurs fragiles.

  • (I.e. Bouton radio Toggle: Utilisez la méthode click() sur l'élément WebElement pour sélectionner un bouton radio ; la sélection d'une autre option désélectionne automatiquement la précédente.
  • ☑️ Case à cocher Toggle: La même méthode click() active et désactive une case à cocher ; l’appeler deux fois rétablit l’état initial de la case.
  • Vérification d'État : Appelez la fonction isSelected() pour confirmer l'état actuel du bouton bascule et renvoyez TRUE pour les contrôles cochés et FALSE pour les contrôles décochés.
  • 🧪 Working : un espace de travail commun Java Exemple : Le programme complet pilote le Guru99 démos et case à cocher de connexion persistante Facebook pour illustrer les deux flux.
  • Localisateurs fiables : Utilisez By.xpath() ou By.cssSelector() lorsque les identifiants changent dynamiquement et ajoutez des attentes explicites pour éviter l'exception NoSuchElementException.

Sélectionnez le bouton radio et cochezBox in Selenium

Bouton radio activé Selenium

Les boutons radio sont activés à l'aide de click() méthode, tout comme n'importe quel autre WebElement dans Selenium. Étant donné qu'une seule option d'un groupe de boutons radio peut être active à la fois, cliquer sur une deuxième option désélectionne automatiquement la première.

L'utilisation de https://demo.guru99.com/test/radio.html À titre d'exercice, veuillez noter que radio1.click() sélectionne le bouton radio « Option 1 ». Appel radio2.click() puis sélectionne « Option 2 » tout en laissant « Option 1 » non sélectionnée.

Sélection par bouton radio sur le Gurupage de démonstration 99

Comment sélectionner une case à cocher dans Selenium

TogglCocher ou décocher une case se fait également à l'aide de click() Méthode. Le code ci-dessous clique deux fois sur la case à cocher « Rester connecté » de Facebook et affiche TRUE lorsque la case est cochée et FALSE lorsqu'elle est décochée.

Selenium code en cliquant sur la case à cocher « Rester connecté » de Facebook

Sortie de la console affichant l'état de bascule de la case à cocher

Le isSelected() Cette méthode permet de vérifier si une case à cocher est activée ou désactivée — une assertion essentielle lors de la validation de l'état d'un formulaire dans les cas de test.

Voici une autre page d'exemple : https://demo.guru99.com/test/radio.html.

Selenium code vérifiant l'état de la case à cocher avec isSelected()

Code Exemple

Voici le code complet et fonctionnel qui active/désactive les deux boutons radio et la case à cocher de connexion persistante 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();
    }
}

Dépannage

Si vous rencontrez NoSuchElementException Lors de la recherche d'éléments, cela signifie que l'élément était absent au moment où WebDriver a accédé à la page. Utilisez la liste de vérification ci-dessous pour résoudre rapidement le problème :

  1. Vérifiez à nouveau votre localisateur à l'aide de FirePath ou de l'outil Inspecter l'élément dans Chrome.
  2. Vérifiez que la valeur utilisée dans le code correspond à la valeur actuelle de l'élément sur la page.
  3. Certains éléments possèdent des attributs dynamiques, similaires à ceux que vous pouvez observer lorsque vous sélectionnez une liste déroulante dans Selenium pilote webDans ces cas-là, préférez By.xpath() or By.cssSelector(), qui sont plus fiables mais légèrement plus complexes.
  4. Parfois, le problème est lié au timing : le WebDriver a exécuté votre code avant que la page ait fini de se charger.
  5. Ajouter une attente avant findElement() utiliser des attentes implicites ou explicites pour donner à l'élément le temps de s'afficher.

FAQ

Pour décocher une case à cocher, utilisez la méthode `click()` sur l'élément WebElement correspondant. Il n'existe pas de méthode dédiée à la désélection. Si vous souhaitez désélectionner uniquement lorsque la case est cochée, utilisez `isSelected()` avant de cliquer, ce qui garantit la sécurité de votre code de test.

La méthode `isSelected()` renvoie `true` lorsqu'une case à cocher ou un bouton radio est sélectionné. La méthode `isEnabled()` renvoie `true` lorsqu'un élément peut recevoir des interactions utilisateur. Elles ont des fonctions différentes : `isSelected()` vérifie l'état de l'élément, tandis que `isEnabled()` vérifie si l'élément accepte les interactions.

Utilisez la méthode `findElements()` avec un localisateur tel que `By.xpath("//input[@type='checkbox']")` pour obtenir tous les éléments Web de type case à cocher, parcourez la liste, vérifiez `isSelected()` et appelez `click()` uniquement sur les cases décochées. Cela évite de décocher accidentellement des cases déjà cochées.

Les assistants IA génèrent des stratégies de localisation, réparent automatiquement les sélecteurs en cas de changement d'identifiant et suggèrent des assertions pour l'état des boutons radio et des cases à cocher. Les outils d'IA génèrent également automatiquement des tests de remplissage de formulaires de bout en bout à partir d'enregistrements d'écran, réduisant ainsi le travail de codage manuel et la maintenance des tests.

Oui. Alimenté par l'IA Selenium Les outils analysent le DOM, identifient les attributs stables et réécrivent les sélecteurs XPath ou CSS lorsque les identifiants changent entre deux versions. Cette capacité d'auto-réparation garantit la réussite des tests des contrôles de formulaire sans mise à jour manuelle des localisateurs après chaque modification de l'interface utilisateur.

Résumez cet article avec :