Radio buttons let users pick one choice from many. Testing them ensures the right option is selected and works as expected.
Radio button interactions in Selenium Python
from selenium import webdriver from selenium.webdriver.common.by import By # Find radio button element radio_button = driver.find_element(By.ID, 'radio_id') # Click to select radio_button.click() # Check if selected is_selected = radio_button.is_selected()
Use unique locators like ID or name to find radio buttons reliably.
Use is_selected() to verify if a radio button is chosen.
radio_male = driver.find_element(By.ID, 'male')
radio_male.click()radio_female = driver.find_element(By.NAME, 'gender') if not radio_female.is_selected(): radio_female.click()
radio_options = driver.find_elements(By.NAME, 'color') for option in radio_options: if option.get_attribute('value') == 'blue': option.click() break
This script opens a simple page with three radio buttons. It clicks the second option and checks that it is selected while the first is not. It prints a success message if all checks pass.
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options import time # Setup Chrome driver (adjust path as needed) options = Options() options.add_argument('--headless') service = Service() driver = webdriver.Chrome(service=service, options=options) try: # Open a simple HTML page with radio buttons html = ''' <html> <body> <form> <input type='radio' id='option1' name='choice' value='1'> Option 1<br> <input type='radio' id='option2' name='choice' value='2'> Option 2<br> <input type='radio' id='option3' name='choice' value='3'> Option 3<br> </form> </body> </html> ''' driver.get('data:text/html;charset=utf-8,' + html) # Select Option 2 option2 = driver.find_element(By.ID, 'option2') option2.click() # Verify Option 2 is selected assert option2.is_selected(), 'Option 2 should be selected' # Verify Option 1 is not selected option1 = driver.find_element(By.ID, 'option1') assert not option1.is_selected(), 'Option 1 should not be selected' print('Test passed: Radio button selection works correctly') finally: driver.quit()
Always wait for the page to load before interacting with elements.
Use unique and stable locators to avoid flaky tests.
Clicking a radio button automatically deselects others in the same group.
Radio buttons allow only one choice in a group.
Use click() to select and is_selected() to check selection.
Test that selecting one radio button deselects others.
Practice
is_selected() method do when used on a radio button element in Selenium?Solution
Step 1: Understand the purpose of
This method checks the current state of a radio button or checkbox to see if it is selected or not.is_selected()Step 2: Compare with other actions
Unlikeclick()which changes the state,is_selected()only returns a boolean indicating selection status.Final Answer:
Checks if the radio button is currently selected -> Option AQuick Check:
Check selection status = C [OK]
- Confusing is_selected() with click()
- Expecting is_selected() to select the button
- Using is_selected() to get button text
Solution
Step 1: Identify the correct method to select a radio button
In Selenium,click()is used to select radio buttons or checkboxes.Step 2: Verify method names
Methods likeselect(),check(), orchoose()do not exist in Selenium WebDriver API.Final Answer:
driver.find_element(By.ID, 'option1').click() -> Option DQuick Check:
Use click() to select radio buttons = A [OK]
- Using non-existent methods like select()
- Trying to assign value instead of clicking
- Confusing with form select elements
radio1 = driver.find_element(By.ID, 'r1') radio2 = driver.find_element(By.ID, 'r2') radio1.click() print(radio1.is_selected()) print(radio2.is_selected())
What will be the output if these are radio buttons in the same group?
Solution
Step 1: Understand radio button group behavior
Clicking one radio button selects it and deselects others in the same group.Step 2: Analyze the code output
After clickingradio1,radio1.is_selected()returns True, andradio2.is_selected()returns False.Final Answer:
True False -> Option AQuick Check:
One selected, others deselected = B [OK]
- Assuming both radio buttons can be selected
- Confusing is_selected() output order
- Ignoring group behavior of radio buttons
radio = driver.find_element(By.NAME, 'gender') radio.click()
But it always selects the first radio button in the group, not the intended one. What is the likely problem?
Solution
Step 1: Understand how
This method returns the first matching element with the given name attribute.find_element(By.NAME)worksStep 2: Identify the issue with multiple radio buttons sharing the same name
Radio buttons in a group share the same name, so you must select the correct one by index or another attribute.Final Answer:
Using By.NAME returns multiple elements; need to specify which one -> Option BQuick Check:
By.NAME returns first element only = A [OK]
- Assuming By.NAME returns all elements
- Using click() incorrectly
- Ignoring radio button group naming
Solution
Step 1: Select all radio buttons by group name
Usefind_elements(By.NAME, 'color')to get all radio buttons in the group.Step 2: Click one button and assert selection states
Click the second button, then assert it is selected and the first is not.Final Answer:
radio_buttons = driver.find_elements(By.NAME, 'color') radio_buttons[1].click() assert radio_buttons[1].is_selected() and not radio_buttons[0].is_selected() -> Option CQuick Check:
Click one, check selected and deselected = D [OK]
- Using find_element instead of find_elements
- Not checking deselection of other buttons
- Wrong locator type for radio group
Ready to prove it?
Pass the test and this pattern moves unknown
