Capybara fill_in不起作用

时间:2015-08-21 18:49:21

标签: capybara

我在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)但是没有运气。

1 个答案:

答案 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