如何在Selenium Python WebDriver中检查复选框是否被选中?

45 投票
6 回答
72862 浏览
提问于 2025-04-17 13:18

我已经找了一个星期,想知道怎么用Python在Selenium WebDriver中检查一个复选框是否被选中,但我只找到了一些JAVA的算法。我看过WebDriver的文档,但里面没有这个问题的答案。
有没有人能给个解决办法?

6 个回答

7

我正在使用 driver.find_element_by_name("< check_box_name >").is_selected() 这个代码来检查一个复选框是否被选中了。

101

有一个叫做 is_selected() 的属性,它是用来检查网页元素的,比如复选框。这个属性可以告诉你复选框是否被选中。所以你可以通过以下方式来检查它是否被选中或未选中:

driver.find_element_by_name('<check_box_name>').is_selected()

或者

driver.find_element_by_id('<check_box_id>').is_selected()

我记得我也遇到过找不到文档的问题。一旦你知道这个属性的名字,找到相关信息就简单多了(这里is_selected 在文档的底部)。我通常查找 Selenium 对象的不同选项或属性的方法是直接在代码里输入 dir(some_object),然后看看有哪些选项出现(这就是我找到 is_selected 的方法)。

5

我找到了一种新的方法,可以实现这个功能,不过是用JavaScript来做的。

def is_checked(self, driver, item_id):
  checked = driver.execute_script(
    f"return document.getElementById('{item_id}').checked"
  )
  return checked

撰写回答