Sto cercando una settimana come controllare se una casella di controllo è selezionata in selenio con python, ma trovo solo gli algoritmi di JAVA. Ho letto i documenti del webdriver e non ho una risposta per questo. Qualcuno ha una soluzione?Come posso verificare se una casella di controllo è selezionata in Selenium Python Webdriver?
risposta
Ho trovato un altro modo che funziona, ma utilizza javascript all'interno.
def is_checked(self, driver, item):
checked = driver.execute_script(("return document.getElementById('%s').checked") % item)
return checked
C'è una proprietà WebElement denominata is_selected()
e per una casella di controllo indica se è selezionata o meno. Pertanto è possibile verificare se è controllato/incontrollato facendo qualcosa di simile a questo:
driver.find_element_by_name('<check_box_name>').is_selected()
o
driver.find_element_by_id('<check_box_id>').is_selected()
Mi ricordo di aver lo stesso problema di non essere in grado di trovare la documentazione. È più facile da trovare quando si conosce il nome (here è alcuni documenti, is_selected
è verso il basso), ma il modo in cui sono andato a cercare di trovare diverse opzioni/proprietà per gli oggetti Selenium è quello di rilasciare semplicemente dir(some_object)
nel codice e vedere cosa vengono visualizzate le opzioni (in questo modo è apparso is_selected
).
def assert_checkbox_status (id, expect):
global browser
field = browser.find_element_by_id(id)
assert field.get_attribute ('checked')== expect
Esempio di utilizzo:
assert_checkbox('activate', True) ==> assert if checkbox is checked
assert_checkbox('activate', None) ==> assert if checkbox is unchecked
sto usando driver.find_element_by_name("<check_box_name>").is_selected()