Il semble que vous utilisiez Capybara avec appium, mais pour une raison que vous appelez pilote des méthodes spécifiques plutôt que d'utiliser l'API Capybara normale . Au lieu de la driver.find_element(:id, 'id_of_the_element').click();
vous devriez juste appellerez l'une des
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
pour trouver et cliquez sur un élément avec id « id_of_the_element ». Lorsque vous traitez avec des types d'éléments spécifiques, il existe d'autres méthodes disponibles, donc pour les cases à cocher nous avons check
et uncheck
- http://www.rubydoc.info/gems/capybara/Capybara/Node/Actions#check-instance_method - va cocher ou décocher une case, tout en vérifiant si elle est déjà cochée/décochée. Alors
page.check('id_of_the_element)
fera en sorte un type d'entrée < = « checkbox » id = 'id_of_the_element> est laissé dans l'état vérifié, quel que soit l'état était avant.
Si vous avez besoin de vérifier si oui ou non une case est cochée - http://www.rubydoc.info/gems/capybara/Capybara/Node/Element#checked%3F-instance_method - vous pouvez utiliser l'une
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?
...
ou si vous voulez affirmer qu'une case est cochée une des conditions suivantes se faire - 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')
idk sur ce que vous utilisez, mais dans Android, la fonction est appelée isChecked(), peut-être vérifier vos docs –
@SaikCaskey, j'utilise ruby et capybara pour écrire mes cas de test. – Aurb