How to select a random radio button using Python Selenium?

Selenium Python – Select a random radio button

In this tutorial, you will learn how to select a random radio button using Selenium Python.

To select a random radio button using Selenium Python,

  1. Find the required group of radio buttons.
  2. Use random library to randomly pick a radio button from the group.
  3. Then use click() method on the radio button, to select it.

Example

In this example, we shall consider loading the webpage at URL: https://pythonexamples.org/tmp/selenium/index-16.html. The contents of this HTML file is given below.

The webpage has a radio group with three radio buttons.

<html>
 <body>
  <h3>My Favourite Subject</h3>
  <form action="">
    <input type="radio" id="physics" name="fav_subject" value="Physics">
    <label for="physics">Physics</label><br>
    <input type="radio" id="mathematics" name="fav_subject" value="Mathematics">
    <label for="mathematics">Mathematics</label><br>
    <input type="radio" id="chemistry" name="fav_subject" value="Chemistry">
    <label for="chemistry">Chemistry</label>
  </form>
 </body>
</html>
Copy

In the following program, we initialize a webdriver, navigate to a specified URL, get the radio buttons with name="fav_subject", and then randomly select one of them.

We shall take screenshots before and after selecting a random radio button.

Python Program

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.common.by import By
import random

# Setup chrome driver
service = ChromeService(executable_path=ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
driver.set_window_size(500, 400)

# Navigate to the url
driver.get('https://pythonexamples.org/tmp/selenium/index-16.html')

# Take a screenshot
driver.save_screenshot("screenshot-1.png")

# Get the radio button whose name="fav_subject"
radio_buttons = driver.find_elements(By.XPATH, "//input[@type='radio' and @name='fav_subject']")

# Randomly pick a radio button
radio_button = random.choice(radio_buttons)

# Click the radio button
radio_button.click()

# Take a screenshot
driver.save_screenshot("screenshot-2.png")

# Close the driver
driver.quit()
Copy

screenshot-1.png – Before selecting a radio button

Python Selenium - Screenshot before randomly selecting a radio button

screenshot-2.png – After selecting a random radio button

Python Selenium - Screenshot after randomly selecting a radio button

Summary

In this Python Selenium tutorial, we have given instructions on how to select a random radio button, with an example.

Related Tutorials

Quiz on Selenium

Q1. What is Selenium Python used for?

Not answered

Q2. What is a web driver in Selenium Python?

Not answered

Q3. What is the method used to navigate back to the previous page in Selenium Python?

Not answered

Q4. Which of the following is not a commonly used assertion method in Selenium Python?

Not answered

Q5. Which of the following is not a commonly used web element locator in Selenium Python?

Not answered
Code copied to clipboard successfully 👍