Как установить флажок в капибаре?
Я использую Rspec и капибара.
как я могу написать шаг, чтобы проверить checkbox
? Я пробовал check
по значению, но не могу найти checkbox
. Я не уверен, что делать, так как у меня на самом деле один и тот же идентификатор с разными значениями
вот код:
<input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="61" name="cityID">
<input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="62" name="cityID">
<input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="63" name="cityID">
9 ответов:
Я обнаружил, что для меня работает следующее:
# Check find(:css, "#cityID[value='62']").set(true) # Uncheck find(:css, "#cityID[value='62']").set(false)
лучше не создавать несколько элементов с одним и тем же id, так что (и не только для этого) вы можете легко проверить/снять флажок флажок элегантных
check 'cityID' uncheck 'cityID'
Если нельзя избежать нескольких элементов с одинаковым идентификатором и все еще нужно установить флажок С определенным значением, он может сделать это с
find(:css, "#cityID[value='62']").set(true) find(:css, "#cityID[value='62']").set(false)
подробнее о капибара входные манипуляции можно найти здесь
Я думаю, что вы, возможно, придется дать уникальный
id
s к вашим элементам формы в первую очередь.но что касается капибары и флажков, то Capybara:: Node:: Actions#check instance method позволит вам найти и проверить флажок по имени, идентификатору или тексту метки.
Я знаю, что это более старый вопрос, но я сам работал над этим, и, попробовав все вышеперечисленное, это то, что, наконец, сработало для меня:
find("input[type='checkbox'][value='#{cityID.id}']").set(true)
надеюсь, что это полезно для кого-то. Я использую капибара 2.4.4.
вы также можете использовать :xpath вместо :css, если у вас есть некоторые проблемы с его поиском.
find (: xpath , '//*[@id="example"]').установить(истина)
в Chrome (и, конечно же, в других браузерах) вы можете "проверить элемент", а затем, щелкнув правой кнопкой мыши на интересующем вас элементе, есть "копировать xpath", если вы не знаете, что такое xpath, теперь вы это делаете.