Подтвердить что ты не робот

Как я нажимаю эту кнопку в 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
4b9b3361

Ответ 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