如何检查 Selenium Python WebDriver 中的复选框是否已选中?

问题描述 投票:0回答:7

我已经搜索了一周如何使用Python检查Selenium WebDriver中的复选框是否被选中,但我只找到了来自JAVA的算法。我已阅读 WebDriver 文档,但没有答案。
大家有解决办法吗

python selenium-webdriver
7个回答
102
投票

有一个名为

is_selected()
的 WebElement 属性,对于复选框,这指示是否选中它。因此,您可以通过执行以下操作来验证它是否已选中/未选中:

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
的出现方式)。


7
投票

我正在使用

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


5
投票

我找到了另一种可行的方法,但在里面使用了javascript。

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

2
投票
agreed = driver.find_element_by_id("checkBoxAgreed")
if agreed.get_attribute("checked") != "true":
    agreed.click()

0
投票
WebElement checkbox = driver.findElement(By.id("checkboxId"))

(或)

checkbox = self.driver.find_element_by_css_selector(checkboxSelector)

,然后

if checkbox.isSelected():
    print 'Checkbox is selected'

0
投票

未选中该复选框时,xpath 或 id 与选中时不同 这意味着,在查找元素时,我们需要

  1. 查找 xpath 中选中和未选中状态下存在的一些常见文本

  2. 用它来定位物体

  3. 然后比较选中复选框和未选中复选框的xpath

    if(选中复选框的 xpath): 经过 别的: chkbox.click()


-3
投票
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
© www.soinside.com 2019 - 2024. All rights reserved.