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 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ฤ
.
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.
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.
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:
- Sprawdลบ ponownie swรณj lokalizator, uลผywajฤ c FirePath lub Inspect Element w Chrome.
- Sprawdลบ, czy wartoลฤ uลผyta w kodzie odpowiada bieลผฤ cej wartoลci elementu na stronie.
- 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()orBy.cssSelector(), ktรณre sฤ bardziej niezawodne, ale nieco bardziej skomplikowane. - Czasami problemem jest kwestia czasu โ WebDriver wykonaล kod przed zakoลczeniem ลadowania strony.
- Dodaj poczekaj przed
findElement()uลผywajฤ c jawnych lub niejawnych oczekiwaล, aby daฤ elementowi czas na wyrenderowanie.




