How to check a particular checkbox from a set of checkboxes in a page in Selenium with python?

Selenium Web DriverAutomation TestingSoftware Testing

We can check a particular checkbox from a set of checkboxes in a page in Selenium with the help of find_elements method. While working on any checkboxes, we will always find an attribute type in the html code and its value should be checkbox.

This characteristic is only applicable to checkboxes on that particular page and to no other types of UI elements like edit box, link and so on.

To retrieve all the elements with attribute type = 'checkbox', we will use find_elements_by_xpath() method. This method returns a list of web elements with the type of xpath specified in the method argument. In case there are no matching elements, an empty list will be returned.

After the list of checkboxes are fetched, if we want to count its total numbers, we need to get the size of that list. The size of the list can be obtained from the len() method of the list data structure.

We have to iterate through this list with the help of loop. Then choose any attribute for the checkbox like name, label, value and so on with the help of get_attribute() method. If this attribute value matches with our choice, we shall perform clicking that particular checkbox with the click() method.




Code Implementation for selecting a particular checkbox.

from selenium import webdriver
#browser exposes an executable file
#Through Selenium test we will invoke the executable file which will then #invoke actual browser
driver = webdriver.Chrome(executable_path="C:\\chromedriver.exe")
# to maximize the browser window
#get method to launch the URL
#to refresh the browser
# identifying the checkboxes with type attribute in a list
chk =driver.find_elements_by_xpath("//input[@type='checkbox']")
# len method is used to get the size of that list
# get_attribute method is get the value attribute
for i in chk:
if i.get_attribute("value") == "Tutorialspoint":
#to close the browser
Published on 29-Jul-2020 07:58:12