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.

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.
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.
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.
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:
- Controleer je locator opnieuw met FirePath of Inspect Element in Chrome.
- Controleer of de waarde die u in de code hebt gebruikt overeenkomt met de huidige waarde van het element op de pagina.
- 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()orBy.cssSelector()die betrouwbaarder zijn, maar iets complexer. - Soms ligt het probleem aan de timing: de WebDriver heeft je code uitgevoerd voordat de pagina volledig geladen was.
- Voeg een wachttijd toe voordat
findElement()Door impliciete of expliciete wachttijden te gebruiken, krijgt het element de tijd om te renderen.




