我正在搜索如何检查是否在带有python的selenium webdriver中选中了复选框,但我只找到了来自JAVA的算法。我引用了webdriver文档并且它没有答案。有人有解决方案吗?
答案 0 :(得分:65)
有一个名为is_selected()
的WebElement属性,对于复选框,它指示是否已选中它。因此,您可以通过执行以下操作来验证是否已选中/取消选中:
driver.find_element_by_name('<check_box_name>').is_selected()
或
driver.find_element_by_id('<check_box_id>').is_selected()
我记得有同样的问题无法找到文档。一旦你知道了名字就会更容易找到(here是一些文档,is_selected
是最底层的),但我试图找到Selenium对象的不同选项/属性的方式就是在代码中删除dir(some_object)
并查看出现的选项(这就是is_selected
出现的方式)。
答案 1 :(得分:6)
我正在使用driver.find_element_by_name("< check_box_name >").is_selected()
答案 2 :(得分:4)
我发现另一种方法可行,但在内部使用javascript。
def is_checked(self, driver, item):
checked = driver.execute_script(("return document.getElementById('%s').checked") % item)
return checked
答案 3 :(得分:0)
var = driver.find_element_by_id("id/checkBoxAgreed")
if var.get_attribute("checked") == "true":
var.click()
答案 4 :(得分:0)
WebElement checkbox = driver.findElement(By.id("checkboxId"))
(或)
checkbox = self.driver.find_element_by_css_selector(checkboxSelector)
,然后
if checkbox.isSelected():
print 'Checkbox is selected'
答案 5 :(得分:-2)
def assert_checkbox_status (id, expect):
global browser
field = browser.find_element_by_id(id)
assert field.get_attribute ('checked')== expect
使用示例:
assert_checkbox('activate', True) ==> assert if checkbox is checked
assert_checkbox('activate', None) ==> assert if checkbox is unchecked