Как я нажимаю эту кнопку в capybara
Пожалуйста, помогите мне решить эту проблему с capybara
У меня есть кнопка, подобная этой в capybara:
<input type="submit" value="Verify" name="verify" id="verify" class="button">
Я пробовал с помощью
click_button "verify"
но он дает ошибку:
Failure/Error: find('#verify').click
NoMethodError:
undefined method `node_name' for nil:NilClass
Ответы
Ответ 1
Ответа на этот вопрос автор
Проблема заключается в HTML-коде:
<div>
<form>
<div>
</div>
</div>
<input type="submit" value="Verify" name="verify" id="verify" class="button">
</form>
Поскольку существует один избыточный </div>
, <input>
обрабатывался вне формы, поэтому capybara
вызывает эту ошибку. После удаления избыточного </div>
все работает нормально.
Ответ 2
Попробуйте добавить js: true
в describe
. Это происходит, когда у вас нет формы, содержащей кнопку.
Ответ 3
Вы пытались "удвоить" селектора CSS? Это был мой переходный механизм, так как capybara-2.4.3
find("#verify").find("[name=verify]").click
любой другой атрибут в дополнение к # id-vale должен делать трюк, например
find("#verify").find(".button]").click
Ответ 4
Если у вас есть идентификатор элемента, просто используйте подход @bonzofenix, но сделайте его более простым:
within 'form' do
find('#verify').click
end