How can I check if a checkbox is checked in Selenium Python WebDriver?

Question:

I’ve been searching a week how check if a checkbox is checked in Selenium WebDriver with Python, but I find only algorithms from JAVA. I’ve read the WebDriver docs and it doesn’t have an answer for that.
Anyone have a solution?

Asked By: Júlio Griebeler

||

Answers:

There is a WebElement property called is_selected(), and for a check box this indicates whether or not it is checked. Therefore you can verify if it is checked/unchecked by doing something like this:

driver.find_element_by_name('<check_box_name>').is_selected()

or

driver.find_element_by_id('<check_box_id>').is_selected()

I remember having the same issue not being able to find documentation. It’s easier to find once you know the name (here are some docs, is_selected is towards the bottom), but the way I have gone about trying to find different options/properties for Selenium objects is to just drop dir(some_object) in the code and see what options come up (this is how is_selected appeared).

Answered By: RocketDonkey

I found another way that works, but using javascript inside.

def is_checked(self, driver, item_id):
  checked = driver.execute_script(
    f"return document.getElementById('{item_id}').checked"
  )
  return checked
Answered By: Júlio Griebeler
def assert_checkbox_status (id, expect):
    global browser
    field = browser.find_element_by_id(id)
    assert field.get_attribute ('checked')== expect

Example of use:

assert_checkbox('activate', True) ==> assert if checkbox is checked
assert_checkbox('activate', None) ==> assert if checkbox is unchecked
Answered By: Feten besbes

I’m using driver.find_element_by_name("< check_box_name >").is_selected()

Answered By: Andrew
agreed = driver.find_element_by_id("checkBoxAgreed")
if agreed.get_attribute("checked") != "true":
    agreed.click()
Answered By: Ali Shah
WebElement checkbox = driver.findElement(By.id("checkboxId"))

(or)

checkbox = self.driver.find_element_by_css_selector(checkboxSelector)

, then

if checkbox.isSelected():
    print 'Checkbox is selected'
Answered By: Anandini
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.