如何检查Selenium Python Webdriver中是否选中了复选框?

时间:2013-01-21 16:09:54

标签: python selenium-webdriver python-unittest

我正在搜索如何检查是否在带有python的selenium webdriver中选中了复选框,但我只找到了来自JAVA的算法。我引用了webdriver文档并且它没有答案。有人有解决方案吗?

6 个答案:

答案 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