水豚 fill_in 不工作

Capybara fill_in isn't working

我正在使用 Rails 4.2.1 并使用 Capybara 2.4 进行测试。我遇到一些输入字段未使用水豚 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>

我试过这个:但没有任何运气。

尝试输入一个 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