Let’s Interact With Radio Buttons & Radio Buttons Group Using Selenium Web Driver
In the previous tutorials, we have seen how we can click on a WebElement using the click() function, fill textbox with text using the sendKeys() functions. These are the functions you will need most of the time. But some forms have other controls, like radio buttons, and you will need some other functions to interact with them.
In this tutorial, we will learn how to locate & interact with radio buttons with Selenium Web Driver in various ways, as well as iterating through all the radio buttons in a given group.
This tutorial is part of a series about Selenium Web Driver. You can go to the first part in the series by clicking here.. For setting up Selenium & launching the first test, you can refer to the first lesson in the series:- Getting Started With Selenium WebDriver tutorial
Quickly go to:-
Locating & Selecting Radio Buttons
Using what we learned about locating WebElements in this series ☇, you can locate & interact with Radio Buttons just like any WebElement. After that, we could check its status & select it using the various functions of WebElement.
If the radio button we wish to click had a unique value, like an ID, then finding it is straightforward. If you ever needed, you could always use Xpath or CSS selector to find the radio button you want (using its value or some other criterea). Xpath & CSS selector are explained in their respective tutorials. ☇
In our radio buttons test form, we have 4 radio buttons. Each button represents an animal:-
Let’s write a Java code that locates & click on the Penguin radio button. We could simply locate it using its ID (PenguinID). We got that value from the inspector here:-
The following code locates & select it using the click() function:-
package SeleniumSeries; import java.util.List; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class SeleniumRadioButton { public static void main(String[] args) { String GeckoPath = "C:\\Fairy\\geckodriver.exe"; System.setProperty("webdriver.gecko.driver", GeckoPath); WebDriver driver = new FirefoxDriver(); driver.get("https://tech-fairy.com/selenium-webdriver-paractice-form-with-radio-buttons/"); WebElement radio = driver.findElement(By.id("PenguinID")); radio.click(); } }
For simple cases, where you know which radio button you want to click, this solution works just fine. We will learn how to iterate through radio buttons of the same group later in this tutorial.
Radio Button Status
You can determine whether the radio button is selected with the WebElement function isSelected(). It returns true of the button is selected, and false if it was not.
radio.isSelected();
Check If Radio Button Is Enabled
In the same way we could check the selection status of WebElements. You could check whether a radio button is enabled or not. This can be useful to avoid trying to select a radio button we can’t select in the first place. Checking the button status can be done using the WebElement function isEnabled():-
radio.isEnabled();
Iterating And Interacting With Radio Buttons In The Same Group
You can iterate through all the available radio buttons in a given group. Radio buttons of the same group share the same name, although you can’t use that to locate a specific button, it can be used to locate all them.
The following code iterate through all the buttons in the Animal group, which all have the name “Animal”, and tells us which one is currently selected using the .isSelected() function:-
package SeleniumSeries; import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class IterateThroughRadioButtons { public static void main(String[] args) { String GeckoPath = "C:\\Fairy\\geckodriver.exe"; System.setProperty("webdriver.gecko.driver", GeckoPath); WebDriver driver = new FirefoxDriver(); driver.get("https://tech-fairy.com/selenium-webdriver-paractice-form-with-radio-buttons/"); List AllRadioButtons = driver.findElements(By.name("Animal")); for(WebElement RadioNutton : AllRadioButtons) { String SelectedButtonStatus = "(Unselected)"; boolean IsButtonSelected = RadioNutton.isSelected(); if(IsButtonSelected) { SelectedButtonStatus = "(Selected)"; } System.out.println("The radio button \"" + RadioNutton.getAttribute("value") + "\" " + SelectedButtonStatus); } } }
Not only iterating through the radio button makes it easy to check on which one is selected, but it also makes it easy for us to check if the button was enabled before we click on it. It’s also useful in case the radio buttons are dynamic & change based on the user’s input.
Assuming the second button is selected by the time we run this code. We will get the following output:-
The radio button "Cat" (Unselected) The radio button "Penguin" (Selected) The radio button "Elephant" (Unselected) The radio button "Dog" (Unselected)
And Finally
Finding & interacting with radio buttons with Selenium Web Driver is the same as any other WebElement. Which makes it easy to work with them if you knew which functions to use for that. Those functions can be applied to other Input & WebElements, like CheckBoxes. ☇
I hope you found this tutorial useful, and see you again in another one.
See Also:-
-
- Introduction to selenium web driver series. What is it? And what browsers & programming languages it supports – Tech Fairy
- What are 60% Keyboards (65%)? And what are their advantages & disadvantages – Tech Fairy
- 40% Keyboards Form Factor, What are they? And why would you use one? – Tech Fairy
- Why ThinkPad laptops are popular, and what are their advantages?
- What are business-grade laptops? What are their advantages? And which one to buy?
- Java VS Python VS C# detailed comparison, which language to learn first?
- Do you need an Expensive motherboard for gaming?
- What is the meaning of the different USB port colors? (blue, teal blue, yellow, red, black)
- Why motherboards & laptops still come with USB 2.0 ports When USB 3.0 Is Backward Compatible?
- USB 2.0 VS USB 3.0 Comparison: What are the differences between the two ports?