Я работаю в Rails 4.2.1 и делаю тестирование с использованием Capybara 2.4. У меня проблема с некоторыми полями ввода, которые не заполняются с использованием метода capybara fill_in.Capybara fill_in не работает
Я не получаю сообщение об ошибке ElementNotFound, я получаю это:
ожидается: "2018-01-10" получил: ""
(по сравнению с использованием ==)
Вот код ошибки: Примечание: fill_in работает для полей электронной почты, пароля и имени программы, но не для primary_training_start, primary_comp_start и primary_comp_end.
it 'create program' do
visit '/'
fill_in 'Email', with: '[email protected]'
fill_in 'Enter Your Password', with: 'test123'
click_on 'Log In'
fill_in 'Program Name', with: 'My Training'
find('.exclusive').click
click_on 'Next Step'
all('.creator-wayfinder li')[1].click
expect(page).to have_content('SET THE SCHEDULE')
fill_in 'primary_training_start', with: '2018-01-10'
fill_in 'primary_comp_start', with: '2018-02-10'
fill_in 'primary_comp_end', with: '2018-03-10'
expect(find_field('primary_training_start').value).to eq('2018-01-10')
expect(find_field('primary_comp_start').value).to eq('2018-02-10')
expect(find_field('primary_comp_end').value).to eq('2018-03-10')
click_on 'Show Program Schedule'
end
А вот HTML для primary_training_start поля:
<div>
<mark>Start Training</mark>
<span class="datepicker" date-format="M/d/yyyy" date-set="{{program.training_calendar_details.primary_training_start}}">
<input required
ng-model="program.training_calendar_details.primary_training_start"
name="primary_training_start"
type="text" tabbable tabindex="0" />
</span>
<errors for="primary_training_start" model="program.training_calendar_details.primary_training_start"></errors>
</div>
Я попытался это: Capybara won't fill in form fields (although it finds them), но не имели никакой удачи.
ли эти поля под контролем какой-то JS виджет? Если это так, то передача ключей непосредственно элементу (который является fill_in) может быть изменена обработчиками JS. –