2017-08-31 151 views
0

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

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

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

,但我还是想检查是否有人检查或还没有为其他测试情况

TYIA!

+0

idk关于你正在使用的东西,但在Android中该函数被称为isChecked(),也许检查你的文档 –

+0

@SaikCaskey,我使用ruby和水豚写我的测试用例。 – Aurb

回答

0

我认为你期待Ruby中的代码片段,因为它写了ruby代码片段。如果你想检查未经检查的复选框,此代码有效。如果您需要更多更改,您可以修改它。

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

此方法适合我的原因!谢谢! – Aurb

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取消选中它。

0

看来你使用水豚用appium,但由于某种原因你调用驱动程序的具体方法,而不是使用正常的水豚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) 

将确保一个<输入类型=“复选框” ID =“id_of_the_element>元素保留在选中状态,无论国家是前。

如果您仍然需要检查一个复选框是否被选中 - 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') 
+0

当我尝试使用page.find方法时,它列出了该页面上可用的所有元素ID,但无法找到该元素。但page.find_element以某种方式工作。我想我必须阅读你给我的所有文件。谢谢! – Aurb

+0

@Aurb然后它听起来像你实际上没有在Appium中使用水豚,并应该从问题中删除水豚标签。 –

0

,我认为是非常simplier ...(与Python会是这样)

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