わかりましたので、カピバラ + Rails 3 + rspect で作業しています
サイトにログインしようとしていますが、fill_in
メソッド を使用するとエラーが発生しclick_on
ませんが、クリックしようとしている要素が見つからないため、メソッドでエラーが発生します。
ここに私のHTMLコードがあります:
<form accept-charset="UTF-8" action="/" class="filter_form" id="login" method="post">
<fieldset>
<div class="modal-body">
<div class="clearfix login-fields">
<label for="user_email">Email</label>
<div class="input login-inputs">
<input class="input-text" id="user_email" name="user[email]" placeholder="email" size="30" type="email" value="">
</div>
</div>
<div class="clearfix login-fields">
<label for="user_password">Password</label>
<div class="input login-inputs">
<input class="input-text" id="user_password" name="user[password]" placeholder="password" size="30" type="password">
</div>
</div>
</div>
<div class="modal-footer">
<input class="btn btn-primary login_btn" id="btn_login" name="commit" type="submit" value="Sign in">
<a href="/lms/forgot_password" class="btn">Forgot password...</a>
<a href="#" class="btn close cancel" data-dismiss="modal">Cancel</a>
</div>
</fieldset>
</form>
そして、ここにテストがあります:
describe "Login ", js: true, type: :request do
it "should login correctly if the right credentials are given" do
Capybara.default_wait_time = 15
Capybara.ignore_hidden_elements = false
visit new_user_session_path
fill_in 'user_email', :with => 'example@test.com'
fill_in 'user_password', :with => 'pwd123'
p page.body
click_on 'Sign in'
visit '/'
save_and_open_page
response.should have_content('Welcome')
end
end
最悪の部分は、次のコードが表示p page.body
される直前に行うことです。click_on
<html xmlns=\\\"http://www.w3.org/1999/xhtml\\\"><head></head><body></body></html>\
しかし、それを変更するとp response.body.inspect
、ページの完全な html コードが取得されます...、visit
メソッドは応答のコンテンツをロードすべきではありませんpage
か?
どんな助けでも大歓迎です、これは私を夢中にさせています:)