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?
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).
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
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
I’m using driver.find_element_by_name("< check_box_name >").is_selected()
agreed = driver.find_element_by_id("checkBoxAgreed")
if agreed.get_attribute("checked") != "true":
agreed.click()
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'
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?
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).
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
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
I’m using driver.find_element_by_name("< check_box_name >").is_selected()
agreed = driver.find_element_by_id("checkBoxAgreed")
if agreed.get_attribute("checked") != "true":
agreed.click()
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'