我正在尝试编写一个测试,检查是否选中了复选框,如果没有检查,我将使用哪种方法来检查它。
我已经编写了一个检查复选框的代码,
driver.find_element(:id, 'id_of_the_element').click();
但我仍然想检查是否已检查其他测试用例
TYIA!
答案 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'的元素。在处理特定元素类型时,还有其他方法可用,因此对于复选框,我们有check
和uncheck
- 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