Jak wybrać przycisk opcji i sprawdzićBox in Selenium
Przycisk radiowy w Selenium
Przyciski radiowe można również włączać i wyłączać za pomocą metody click().
Korzystanie z https://demo.guru99.com/test/radio.html w celach ćwiczeniowych zobacz, że radio1.click() przełącza przycisk radiowy „Opcja1”. radio2.click() przełącza przycisk radiowy „Opcja2”, pozostawiając „Opcję1” niezaznaczoną.
Jak zaznaczyć pole wyboru w Selenium
TogglWłączanie/wyłączanie pola wyboru odbywa się również za pomocą Kliknij() Metoda.
Poniższy kod spowoduje dwukrotne kliknięcie pola wyboru „Zapamiętaj mnie” na Facebooku, a następnie wyświetlenie wyniku jako TRUE, gdy pole to jest zaznaczone, lub FALSE, gdy jest wyłączone.
Metoda isSelected() służy do sprawdzenia, czy pole wyboru jest włączone czy wyłączone.
Oto kolejny przykład: https://demo.guru99.com/test/radio.html
Kompletny kod
Oto kompletny działający kod
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/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 Button1 is selected radio1.click(); System.out.println("Radio Button Option 1 Selected"); //Radio Button1 is de-selected and Radio Button2 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 Check box option1.click(); // Check whether the Check box is toggled on if (option1.isSelected()) { System.out.println("Checkbox is Toggled On"); } else { System.out.println("Checkbox is Toggled Off"); } //Selecting Checkbox and using 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 podczas wyszukiwania elementów napotkasz funkcję NoSuchElementException(), oznacza to, że elementu nie znaleziono na stronie w momencie, gdy sterownik sieciowy uzyskał dostęp do strony.
- Sprawdź ponownie swój lokalizator za pomocą Firepath lub Inspect Element w przeglądarce Chrome.
- Sprawdź, czy wartość użyta w kodzie różni się teraz od wartości elementu w Firepath.
- Niektóre właściwości są dynamiczne dla kilku elementów. Jeśli okaże się, że wartość jest inna i zmienia się dynamicznie, rozważ użycie By.xpath() lub By.cssSelector(), które są bardziej niezawodnymi, ale złożonymi metodami.
- Czasami może to być również problem związany z oczekiwaniem, np. sterownik sieciowy wykonał kod jeszcze przed całkowitym załadowaniem strony itp.
- Dodaj oczekiwanie przed findElement() przy użyciu niejawnych lub jawnych oczekiwań.
Podsumowanie
- Poniższa tabela podsumowuje polecenia umożliwiające dostęp do każdego typu elementu omówionego powyżej
Element | Command | Opis |
---|---|---|
Sprawdź Box, Przycisk radiowy | Kliknij() | służy do włączania/wyłączania elementu |