2013-01-21 18 views

risposta

4

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 
48

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).

-2
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 
5

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