Найти и заполнить поле ввода по атрибуту данных

Я хочу найти элементы с помощью "тестового" атрибута данных и заполнить их следующим образом:

When(/^I sign in with valid credentials$/) do
  email = page.find("data-test='email'")
  password = page.find("data-test='password'")
  fill_in email, with: @user.email
  fill_in password, with: @user.password
  submit = page.find("[data-test='submit']")
  submit.click
end

Кнопка работает нормально, но на входах выдается следующая ошибка:

Unable to find field #<Capybara::Element tag="input"> (Capybara::ElementNotFound)

Есть ли способ сделать это в капибаре? Заранее спасибо за помощь.

1 ответ

Решение

fill_in Метод принимает идентификатор элемента, имя или текст метки, поэтому он может не работать с результатом, который возвращает метод find. В вашем случае попробуйте set метод:

find("input[data-test='email']").set(@user.email)
Другие вопросы по тегам