我在Rails 4.2.1中工作并使用Capybara 2.4进行测试。我有一些问题,一些输入字段没有使用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: 'john@doe.com'
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
这里是primary_training_start字段的HTML:
<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)但是没有运气。
答案 0 :(得分:3)
尝试输入ID
<input required
ng-model="program.training_calendar_details.primary_training_start"
name="program[training_calendar_details][primary_training_start]"
id="primary_training_start"
type="text" tabbable tabindex="0" />
fill_in使用第一个参数作为id