¿Cómo puedo verificar si una casilla está marcada en Selenium Python Webdriver?

Busco una semana cómo comprobar si una checkbox está marcada en webdriver de selenium con python, pero solo encuentro algoritmos de JAVA. Leí los documentos de webdriver y no tengo una respuesta para eso. ¿Alguien tiene una solución?

Hay una propiedad de WebElement llamada is_selected() , y para una checkbox esto indica si está marcada o no. Por lo tanto, puede verificar si está marcado / no marcado haciendo algo como esto:

 driver.find_element_by_name('').is_selected() 

o

 driver.find_element_by_id('').is_selected() 

Recuerdo haber tenido el mismo problema al no poder encontrar documentación. Es más fácil encontrarlo una vez que sepa el nombre ( aquí hay algunos documentos, is_selected es hacia la parte inferior), pero la forma en que he intentado encontrar diferentes opciones / propiedades para los objetos de Selenium es simplemente soltar dir(some_object) en el código y vea qué opciones aparecen (así es como se ha seleccionado is_selected ).

Estoy usando driver.find_element_by_name("< check_box_name >").is_selected()

Encuentro otra forma que funciona, pero usa javascript dentro.

 def is_checked(self, driver, item): checked = driver.execute_script(("return document.getElementById('%s').checked") % item) return checked 
 def assert_checkbox_status (id, expect): global browser field = browser.find_element_by_id(id) assert field.get_attribute ('checked')== expect 

Ejemplo de uso:

 assert_checkbox('activate', True) ==> assert if checkbox is checked assert_checkbox('activate', None) ==> assert if checkbox is unchecked