J'essaie de sélectionner un élément dans un menu déroulant en utilisant Capybara (2.1.0).
Je veux sélectionner par numéro (ce qui signifie sélectionner l'option deuxième, troisième, etc.).
J'ai googlé comme un fou en essayant toutes sortes de choses mais pas de chance.
J'ai pu le sélectionner en utilisant la valeur:
find("option[value='4c430d62-f1ba-474f-8e8a-4452c55ea0a8']").click
Mais je ne veux pas utiliser cette méthode car la valeur est quelque chose qui va changer et qui rendra mon test fragile.
Le code HTML de la liste déroulante est:
<td class="value">
<select name="organizationSelect" id="organizationSelect" class="required">
<option value="NULL">Choose...</option>
<option value="4c430d62-f1ba-474f-8e8a-4452c55ea0a8"> Institution1</option>
<option value="e1a4efa7-352d-410a-957e-35c8a3b92944"> Institution / test</option>
</select>
</td>
J'ai aussi essayé ceci:
option = find(:xpath, "//*[@id='organizationSelect']/option[2]").text
select(option, :from => organizationSelect)
Mais cela entraîne cette erreur:
Ambiguous match, found 2 elements matching option "Institution" (Capybara::Ambiguous)
Alors, comment puis-je sélectionner la première, deuxième, troisième, etc. option dans la liste déroulante (en utilisant Capybara)?