Wybierz przycisk opcji i zaznaczBox in Selenium

โšก Inteligentne podsumowanie

Wybierz przycisk opcji i zaznaczBox in Selenium Omawia techniki WebDriver sล‚uลผฤ…ce do automatyzacji dwรณch najpopularniejszych kontrolek formularzy. W tym samouczku wyjaล›niono, jak metody click() i isSelected() przeล‚ฤ…czajฤ… pola wyboru i przyciski radiowe, a takลผe opisano sposรณb dziaล‚ania. Java kod i dzieli siฤ™ wskazรณwkami dotyczฤ…cymi rozwiฤ…zywania problemรณw z wraลผliwymi lokalizatorami.

  • ๐Ÿ”˜ Przycisk radiowy Toggle: Uลผyj metody click() w elemencie WebElement, aby wybraฤ‡ przycisk radiowy. Wybranie innej opcji automatycznie odznaczy poprzedniฤ….
  • ๏ธ pole wyboru Toggle: Ta sama metoda click() wล‚ฤ…cza i wyล‚ฤ…cza zaznaczenie pola wyboru; jej dwukrotne wywoล‚anie przywraca pole wyboru do jego pierwotnego stanu.
  • โœ… Weryfikacja stanu: Wywoล‚aj metodฤ™ isSelected(), aby potwierdziฤ‡ bieลผฤ…cy stan przeล‚ฤ…czania i ustawiฤ‡ wartoล›ฤ‡ TRUE dla kontrolek zaznaczonych i FALSE dla niezaznaczonych.
  • ๐Ÿงช Pracujฤ…cy Java Przykล‚ad: Kompletny program steruje GuruDemo 99 i pole wyboru trwaล‚ego logowania na Facebooku demonstrujฤ… oba przepล‚ywy.
  • ๐Ÿ› ๏ธ. Niezawodne lokalizatory: Przeล‚ฤ…cz siฤ™ na By.xpath() lub By.cssSelector(), gdy identyfikatory zmieniajฤ… siฤ™ dynamicznie i dodaj jawne oczekiwania, aby zapobiec wyjฤ…tkowi NoSuchElementException.

Wybierz przycisk opcji i zaznaczBox in Selenium

Przycisk radiowy w Selenium

Przyciski radiowe sฤ… wล‚ฤ…czane za pomocฤ… click() metoda, tak jak kaลผdy inny WebElement w SeleniumPoniewaลผ w danej grupie opcji moลผe byฤ‡ aktywna tylko jedna opcja na raz, klikniฤ™cie drugiej opcji automatycznie powoduje odznaczenie pierwszej.

Korzystanie z https://demo.guru99.com/test/radio.html jako stronฤ™ ฤ‡wiczeniowฤ…, zwrรณฤ‡ uwagฤ™, ลผe radio1.click() wybiera przycisk radiowy โ€žOpcja 1โ€. Wywoล‚anie radio2.click() nastฤ™pnie wybiera โ€žOpcjฤ™ 2โ€, pozostawiajฤ…c โ€žOpcjฤ™ 1โ€ niezaznaczonฤ….

Wybรณr przycisku radiowego na Guru99 strona demonstracyjna

Jak zaznaczyฤ‡ pole wyboru w Selenium

TogglWล‚ฤ…czanie i wyล‚ฤ…czanie pola wyboru odbywa siฤ™ rรณwnieลผ za pomocฤ… click() Metoda. Poniลผszy kod klika dwukrotnie pole wyboru โ€žZachowaj mnie zalogowanymโ€ na Facebooku i wyล›wietla wartoล›ฤ‡ TRUE, gdy pole wyboru jest zaznaczone, i FALSE, gdy jest wyล‚ฤ…czone.

Selenium kod klikajฤ…c pole wyboru Facebooka โ€žZapamiฤ™taj mnieโ€

Wyjล›cie konsoli pokazujฤ…ce stan przeล‚ฤ…czania pola wyboru

isSelected() Metoda ta sล‚uลผy do potwierdzenia, czy pole wyboru jest zaznaczone czy nie โ€” jest to kluczowe stwierdzenie przy sprawdzaniu stanu formularza w przypadkach testowych.

Oto przykล‚adowa strona: https://demo.guru99.com/test/radio.html.

Selenium kod weryfikujฤ…cy stan pola wyboru za pomocฤ… isSelected()

Absolutna Code Przykล‚ad

Oto kompletny dziaล‚ajฤ…cy kod, ktรณry przeล‚ฤ…cza oba przyciski radiowe i pole wyboru trwaล‚ego logowania na Facebooku.

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

Rozwiฤ…zywanie problemรณw

Jeล›li napotkasz NoSuchElementException Podczas wyszukiwania elementรณw oznacza to, ลผe element nie byล‚ obecny w momencie, gdy WebDriver uzyskaล‚ dostฤ™p do strony. Skorzystaj z poniลผszej listy kontrolnej, aby szybko odzyskaฤ‡ dane:

  1. Sprawdลบ ponownie swรณj lokalizator, uลผywajฤ…c FirePath lub Inspect Element w Chrome.
  2. Sprawdลบ, czy wartoล›ฤ‡ uลผyta w kodzie odpowiada bieลผฤ…cej wartoล›ci elementu na stronie.
  3. Niektรณre elementy majฤ… atrybuty dynamiczne, podobne do tych, ktรณre moลผesz zobaczyฤ‡ podczas wybierz listฤ™ rozwijanฤ… w Selenium Sterownik sieciowyW takich przypadkach preferuj By.xpath() or By.cssSelector(), ktรณre sฤ… bardziej niezawodne, ale nieco bardziej skomplikowane.
  4. Czasami problemem jest kwestia czasu โ€” WebDriver wykonaล‚ kod przed zakoล„czeniem ล‚adowania strony.
  5. Dodaj poczekaj przed findElement() uลผywajฤ…c jawnych lub niejawnych oczekiwaล„, aby daฤ‡ elementowi czas na wyrenderowanie.

FAQ

Wywoล‚aj click() na tym samym polu wyboru WebElement, aby je wyล‚ฤ…czyฤ‡. Nie ma dedykowanej metody deselect. Uลผyj isSelected() przed klikniฤ™ciem, jeล›li chcesz odznaczyฤ‡ pole wyboru tylko wtedy, gdy jest ono aktualnie zaznaczone, co zapewnia bezpieczeล„stwo logiki testu.

Funkcja isSelected() zwraca wartoล›ฤ‡ true, gdy pole wyboru lub przycisk opcji jest zaznaczony. Funkcja isEnabled() zwraca wartoล›ฤ‡ true, gdy element moลผe odbieraฤ‡ dane od uลผytkownika. Sล‚uลผฤ… one rรณลผnym celom: isSelected() weryfikuje stan, podczas gdy isEnabled() weryfikuje, czy element akceptuje interakcjฤ™.

Uลผyj findElements() z lokalizatorem, takim jak By.xpath(โ€œ//input[@type='checkbox']โ€), aby pobraฤ‡ wszystkie elementy WebElement z polami wyboru, wykonaj pฤ™tlฤ™ po liล›cie, sprawdลบ isSelected() i wywoล‚aj click() tylko dla tych, ktรณre sฤ… niezaznaczone. Pozwala to uniknฤ…ฤ‡ przypadkowego odznaczenia juลผ zaznaczonych pรณl.

Asystenci AI generujฤ… strategie lokalizowania, samonaprawiajฤ… selektory w przypadku zmiany identyfikatorรณw i sugerujฤ… asercje dotyczฤ…ce stanu przyciskรณw radiowych i pรณl wyboru. Narzฤ™dzia AI automatycznie generujฤ… rรณwnieลผ kompleksowe testy wypeล‚niania formularzy na podstawie nagraล„ ekranowych, redukujฤ…c rฤ™czny kod i nakล‚ad pracy zwiฤ…zany z konserwacjฤ… testรณw.

Tak. Wspierane przez sztucznฤ… inteligencjฤ™ Selenium Narzฤ™dzia analizujฤ… DOM, uczฤ… siฤ™ stabilnych atrybutรณw i przepisujฤ… selektory XPath lub CSS, gdy identyfikatory zmieniajฤ… siฤ™ miฤ™dzy wersjami. Ta funkcja samonaprawiania sprawia, ลผe โ€‹โ€‹testy kontrolek formularza przechodzฤ… bez rฤ™cznej aktualizacji lokalizatora po kaลผdej modyfikacji interfejsu uลผytkownika.

Podsumuj ten post nastฤ™pujฤ…co: