检查是否取消选中复选框

时间:2017-08-31 10:34:45

标签: android ruby rspec capybara appium

我正在尝试编写一个测试,检查是否选中了复选框,如果没有检查,我将使用哪种方法来检查它。

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

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

但我仍然想检查是否已检查其他测试用例

TYIA!

5 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

在设置复选框的状态时,您必须调用setChecked()方法作为参数true传入以检查它,并false取消选中它。

答案 2 :(得分:0)

我认为你期待Ruby中的代码片段,因为我写了ruby的代码片段。如果要检查未选中的复选框,此代码可以正常工作。如果您需要进行更多更改,可以修改。

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

答案 3 :(得分:0)

您似乎正在使用带有appium的Capybara,但出于某种原因,您需要调用特定于驱动程序的方法,而不是使用普通的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 - 将检查或取消选中复选框,同时检查它是否已经存在选中/取消。所以

page.check('id_of_the_element)

将确保< input type ="复选框" ID ='&id_of_the_element GT;无论状态如何,元素都处于检查状态。

如果您仍需要检查复选框是否已选中 - http://www.rubydoc.info/gems/capybara/Capybara/Node/Element#checked%3F-instance_method - 您可以使用

中的任何一个
page.find('#id_of_the_element').checked? # return checked state of any element
page.find(:checkbox, 'id_of_the_element').checked? # will only find actual checkbox elements
page.find_field('id_of_the_element', type: 'checkbox').checked?
...

或者如果您想声明选中了复选框,则以下任何一项都会执行此操作 - 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')

答案 4 :(得分:0)

我认为更简单......(使用python会是这样的)

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