检查复选框是否未选中

Check if checkbox is unchecked

我正在尝试编写一个测试来检查复选框是否已选中,如果未选中,我将使用什么方法来选中它。

我已经编写了检查复选框的代码,

driver.find_element(:id, 'id_of_the_element').click();

但我仍然想检查它是否也被其他测试用例检查过

蒂娅!

if((cb.isChecked())
{
  //Checkbox is true.
}
else
{
  //Checkbox is false.
}

要检查复选框是否被选中,您必须像这样调用 isChecked() 方法:

if(checkbox.isChecked()) {
    // The checkbox is checked
} else {
    // The checkbox isn't checked
}

虽然要设置复选框的状态,但您必须调用作为参数传入的 setChecked() 方法 true 来选中它,false 来取消选中它。

我认为您期待 Ruby 中的代码片段,因为如果您想选中未选中的复选框,则为 ruby.This 编写的代码片段有效。如果您需要在其中进行更多更改,可以进行修改。

    element=driver.find_element(:id, 'id_of_the_element');
    if(element.attribute("checked")=="false")
    {
        element.click();
    }

您似乎在将 Capybara 与 appium 一起使用,但出于某种原因,您正在调用特定于驱动程序的方法,而不是使用普通的 Capybara API .而不是 driver.find_element(:id, 'id_of_the_element').click(); 你应该只调用

page.find(:id, 'id_of_the_element').click() # use the id selector
page.find('#id_of_the_element').click() # use default CSS with an id selector

查找并单击 ID 为 'id_of_the_element' 的元素。当处理特定的元素类型时,还有其他可用的方法,所以对于复选框,我们有 checkuncheck - http://www.rubydoc.info/gems/capybara/Capybara/Node/Actions#check-instance_method - 将选中或取消选中一个复选框,同时检查它是否已经存在checked/unchecked。所以

page.check('id_of_the_element)

将确保

或者如果你想断言一个复选框被选中,下面的任何一个都可以做到这一点 - http://www.rubydoc.info/gems/capybara/Capybara/RSpecMatchers

expect(page).to have_selector(:checkbox, 'id_of_the_element', checked: true)
expect(page).to have_field('id_of_the_element', type: 'checkbox', checked: true)
expect(page).to have_checked_field('id_of_the_element')

我觉得就简单多了...(有了python就会这样)

def isChecked(self, webElement):
    if webElement.get_attribute("checked") == 'true':
        return True
    else:
        return False