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

Нажмите на одну конкретную кнопку, используя capybara в рельсах

Я работаю с rails 3 и в настоящее время пишу тест с capybara, используя драйвер selenium, Я имею вопрос как ниже

В одной форме у меня есть 3 кнопки с именем "сохранить и добавить другое", "сохранить и продолжить редактирование" и "сохранить", Теперь, если я попытаюсь сохранить форму capybara, как показано ниже

click_button 'Save'

Затем это вызывает ошибку с именем "Сохранить" с идентификатором, заголовком или значением, не найденным Теперь, если я удаляю вышеуказанные 2 кнопки, а затем я пытаюсь, то он работает

FYI, My 3 button html, как показано ниже,

<input class="btn" type="submit" value="Save and add another" name="_addanother" data-disable-with="Save and add another">

<input class="btn" type="submit" value="Save and continue editing" name="_continue" data-disable-with="Save and continue editing">

<input class="btn" type="submit" value="Save" name="_save" data-disable-with="Save">

Пожалуйста, дайте мне знать, если у кого-то есть идея.

4b9b3361

Ответ 1

Я думаю, проблема в том, что все значения возвращают соответствие, потому что все они содержат "Сохранить".

Попробуйте назначить каждому отдельный идентификатор и использовать его.

Ответ 2

Соответствие с точностью - из документов GitHub. Использование точности, вероятно, будет иметь меньшее влияние, чем изменение ваших шаблонов.

click_button('Save', exact: true)

Это позволит найти точное совпадение и пропустить действие "Сохранить blah".

Ответ 3

click_button методы ожидают id, name, значение кнопки .Below будет работать.

click_button 'Save and add another'
click_button 'Save and continue editing'

И последняя кнопка работает без ошибок, потому что ее значение равно "Сохранить"

click_button 'Save'

Ответ 4

Я придумал следующее решение

модуль ValidUserRequestHelper

# for use in request specs
def sign_in_as_a_valid_user
  before(:each) do
    user = FactoryGirl.create :user
    visit user_session_path
    fill_in 'user_email', :with => '[email protected]'
    fill_in 'user_password', :with => 'foobar'
    click_button 'Einloggen'
  end
end