2014-10-28 3 views
1

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

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) 

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

ответ

3

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

find("input[data-test='email']").set(@user.email) 
+0

'fill_in' принимает элемента идентификатор, имя или текст метки, поэтому он не может работать с результатом в' find' метод возвращает. В вашем случае попробуйте метод 'set':' find ("input [data-test = 'email']"). Set (@ user.email) ' – Alireza

+0

Это великолепно. Он работал идеально. Огромное спасибо. – sturoid

Смежные вопросы