Szukam tygodnia, jak sprawdzić, czy pole wyboru jest zaznaczone w selenowym webdriverze z pythonem, ale znajduję tylko algorytmy z JAVA. Przeczytałem dokumenty dla webdrivera i nie mam na to odpowiedzi. Ktoś ma rozwiązanie?Jak mogę sprawdzić, czy pole wyboru jest zaznaczone w Selenium Python Webdriver?
27
A
Odpowiedz
4
Znajduję inny sposób, który działa, ale używa javascript wewnątrz.
def is_checked(self, driver, item):
checked = driver.execute_script(("return document.getElementById('%s').checked") % item)
return checked
48
Istnieje właściwość WebElement o nazwie is_selected()
, a dla pola wyboru wskazuje, czy jest ona zaznaczona. Dlatego można sprawdzić, czy jest zaznaczone/odznaczone robiąc coś takiego:
driver.find_element_by_name('<check_box_name>').is_selected()
lub
driver.find_element_by_id('<check_box_id>').is_selected()
Pamiętam posiadające ten sam problem nie jest w stanie znaleźć w dokumentacji. Łatwiej jest znaleźć, gdy znasz już nazwę (here to niektóre dokumenty, is_selected
jest na dole), ale sposób, w jaki próbowałem znaleźć różne opcje/właściwości obiektów Selenium to po prostu upuścić kod dir(some_object)
i zobaczyć, co opcje pojawiają się (tak się pojawiło is_selected
).
-2
def assert_checkbox_status (id, expect):
global browser
field = browser.find_element_by_id(id)
assert field.get_attribute ('checked')== expect
Przykład zastosowania:
assert_checkbox('activate', True) ==> assert if checkbox is checked
assert_checkbox('activate', None) ==> assert if checkbox is unchecked
5
mi stosując driver.find_element_by_name("<check_box_name>").is_selected()