Capybara fill_in在Bootstrap模态中不起作用

时间:2015-11-16 19:55:13

标签: ruby-on-rails selenium cucumber capybara

模态输入有时不会被填充。

在步骤中,输入应该填写并在提交中发送,但有时其中一个输入(有时是代码,有时是名称)未填充,并且执行将继续使用click_button和空输入。

我尝试将find()与set()一起使用,但结果是一样的。 我也尝试过没有在()中没有工作,给出相同的结果不确定。

当我写两次fill_in()有效时,例如:

fill_in 'foo_code', :with => code
fill_in 'foo_code', :with => code

任何人都知道一个更好的解决方案,而不是拨打fill_in()两次?

步骤:

fill_form_modal(foo[:code], foo[:name])
click_button 'Save'

# features/step_definitions/steps.rb
def fill_form_modal(code, name)
   within "#createModal" do
      expect(page).to have_selector('#foo_code', visible: true)
      fill_in 'foo_code', :with => code
      expect(page).to have_selector('#foo_name', visible: true)
      fill_in 'name_code', :with => name
   end
end

模态:

<div class="modal fade modal-vcenter pcp in" id="createModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel_createModal" aria-hidden="false" style="display: block;">
   <div class="modal-dialog  modal-dialog-form-xs" role="document">
      <div class="modal-content" z-depth="4" style="margin-top: 270px;">
         <div class="modal-body ">
            <form class="form" action="/workmanships" method="post" id="formId_080499881900748081447698693108">
               <input name="utf8" type="hidden" value="✓">
               <input type="hidden" name="authenticity_token" value="IRouh/Trz">
               <div class="col-sm-12 col-md-12 col-lg-12">
                  <div class="form-group">
                     <input class=" form-control required" type="text" name="workmanship[code]" id="workmanship_code">
                     <label>* Code </label>
                  </div>
               </div>
               <div class="col-sm-12 col-md-12 col-lg-12">
                  <div class="form-group">
                     <input class=" form-control required" type="text" name="workmanship[name]" id="workmanship_name">
                     <label>* Name </label>
                  </div>
               </div>
               <input type="hidden" name="guide" id="guide">
               <div class="modal-actions">
                  <button type="button" formnovalidate="" class="btn ink-reaction btn-default-bright" data-dismiss="modal">Cancel</button>          
                  <button type="submit" formnovalidate="" class="btn ink-reaction btn-success" name="commit"> Save</button>
               </div>
            </form>
         </div>
      </div>
   </div>
</div>

我正在使用selenium webdriver。

0 个答案:

没有答案