나는 poltergeist와 phantomjs를 자바 스크립트 드라이버로 사용하여 요청 테스트를 위해 capybara를 사용하여 몇 가지 테스트를 작성했습니다. Capybara : js : true로 양식 필드를 찾을 수 없습니다.
로그인 양식을 작성을위한 다음 단계
는 JS없이 잘 작동 :Capybara::ElementNotFound: Unable to find field "Email"
로그인 폼 자체 :
it "signs in" do
visit new_user_session_path
fill_in "Email", with: user
fill_in "Password", with: password||"foobar"
click_button "Login"
end
내가 JS 내 테스트를 정의하면 it "signs in", js: true do
내 테스트가 오류와 함께 실패 프론트 엔드에서 폼 생성기 및 부트 스트랩으로 simple_form을 사용하여 빌드됩니다. 필드에 레이블이 없습니다. 검색 텍스트는 자리 표시 자 속성에만 포함됩니다.
= simple_form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f|
= f.input :email, :placeholder => User.human_attribute_name(:email), :label => false, :input_html => {:class => 'input-xlarge'}
= f.input :password, :placeholder => User.human_attribute_name(:password), :label => false, :input_html => {:class => 'input-xlarge'}
%div
= f.button :submit, "Login", :class => 'btn btn-large btn-primary'
이 코드는 다음과 같은 HTML 코드
<form accept-charset="UTF-8" action="https://stackoverflow.com/users/login" class="simple_form new_user" id="new_user" method="post" novalidate="novalidate">
<div style="margin:0;padding:0;display:inline">
<input name="utf8" type="hidden" value="✓">
</div>
<div class="control-group email required user_email">
<div class="controls">
<input class="string email required input-xlarge" id="user_email" name="user[email]" placeholder="Email" size="50" type="email" value="">
</div>
</div>
<div class="control-group password required user_password">
<div class="controls">
<input class="password required input-xlarge" id="user_password" name="user[password]" placeholder="Password" size="50" type="password">
</div>
</div>
<div>
<input class="btn btn btn-large btn-primary" name="commit" type="submit" value="Login">
</div>
</form>
를 생성 어떻게 필드가 JS가 활성화 된 경우에도 발견되는 것을 보장하는 어떤 아이디어가 있습니까?
작업 솔루션을 찾을 수 있었습니까? – Scott
그것은 당신에게 도움이 될 것입니다이 링크를 시도하십시오 http://stackoverflow.com/questions/15784398/test-case-for-hidden-field-is-not-working-with-cucumber – Arvind