web-dev-qa-db-fra.com

comment vérifier si la case à cocher est cochée ou non capybara Rspec

VÉRIFIER 

<div class="checkbox">
    <input id="yes_1212" class="check_uncheck" type="checkbox" value="true" name="yes" checked="checked">
    <label></label>
    </div>

Décocher

 <div class="checkbox ">
    <input id="allow__100" class="check_uncheck" type="checkbox" value="false" name="Allow">
    <label></label>
    </div>

comment vérifier si la case à cocher est cochée ou non

10
jerrytom
<input id="allow__100" class="check_uncheck" type="checkbox" value="false" name="Allow">    

Pour le type de saisie, case à cocher

 page.find(:css,
                      "input#allow__100", visible: false
                    ).should_not be_checked
0
jerrytom

Il y a plusieurs façons selon ce que vous essayez de faire - si vous avez déjà trouvé l'élément et que vous voulez simplement savoir s'il est coché, vous pouvez faire quelque chose comme:

element = find('#yes_1212')
...
element.checked?

Si vous essayez d’affirmer que la case est sur la page et qu’elle est cochée/décochée, vous pouvez le faire.

expect(page).to have_field('yes_1212', checked: true) # checked: false or unchecked: true for not checked

ou

expect(page).to have_checked_field('yes_1212')  # or have_unchecked_field

Si vous voulez une réponse booléenne et que vous n'avez pas déjà une référence à l'élément

page.has_field?('allow__100', unchecked: true)
page.has_unchecked_field?('allow_100')

Dans tous les cas, si l'élément d'entrée est réellement non visible pour des raisons de style, vous pouvez passer visible: false

10
Thomas Walpole

syntaxe 'expect':

expect(page.find("input#yes_1212")).to be_checked

expect(page.find("input#yes_1212")).not_to be_checked
4
user3114072

Il existe deux manières d’obtenir le statut de la case à cocher. Dans le code, vous pouvez voir find(locator_strategy, locator_xpath ici locator_strategy si vous recherchez le localisateur par :xpath ou :css et que le second paramètre est locator_xpath, qui est le locator écrit de la manière indiquée par le premier. paramètre est défini.

Voici donc la première solution: vous pouvez affecter l'élément que vous avez trouvé, puis utiliser element.checked? pour obtenir l'état de la case à cocher, que cette option soit cochée ou non. Cela renverrait soit vrai ou faux

def method_name
 element = find(locator strategy, locator_xpath)
 return element.checked?
end

ou, deuxième manière, ce qui, à mon avis, est une meilleure façon de procéder et consomme moins de lignes de codes.

def method_name
 return find(locator strategy, locator_xpath).checked?
end