カピバラとのリンクでJavaScriptを実行できますclick_link('next_page')
か?
リンクは次のようになります。
<a onclick="$('#submit_direction').attr('value', '1');$('#quizForm').submit()" id="next_page" href="#">Next Question</a>
githubのcapybaraで、次のような送信ボタンをクリックしてフォームを送信できることを読みました。
click_on('Submit Answer')
しかし、私の場合、リンクでjavascriptを使用してフォームを送信する必要があるので、javascriptが含まれているリンクをテストするにはどうすればよいですか?click_link('next_page')
十分ではありませんか?
編集
テストを設定する:js=> true
と、次のようになります。
it "should pass when answering all correct", :js=>true do
login_as(student, :scope => :student)
visit ("/student_courses")
#page.execute_script("$('#submit_direction').attr('value', '1');$('#quizForm').submit()")
trace "HTML:------------", page.html
end
:js => trueの前は、通常どおりページにアクセスできましたが、:js => trueの後でページにアクセスできないことに気付きました。これは、ページにアクセスした後に発生したエラーです。
2012-01-23 06:29:26 +0200(5010.7ms)で127.0.0.1のGET "/student_courses"を開始しました。UPDATE"students"SET "last_sign_in_at" = '2012-01-23 04:29:26.274285'、 " current_sign_in_at "= '2012-01-23 04:29:26.274285'、" last_sign_in_ip "= '127.0.0.1'、" current_sign_in_ip "= '127.0.0.1'、" sign_in_count "= 1、" updated_at "= '2012-01 -23 04:29:26.276279'WHERE"students"。"id" = 1 SQLite3 :: BusyException:データベースがロックされています:UPDATE "students" SET "last_sign_in_at" = '2012-01-23 04:29:26.274285'、 " current_sign_in_at "= '2012-01-23 04:29:26.274285'、" last_sign_in_ip "= '127.0.0.1'、" current_sign_in_ip "= '127.0.0.1'、"sign_in_count "= 1、" updated_at "= '2012-01-23 04:29: 26.276279'WHERE "students"。"id"= 1 HTML:------------__内部サーバーエラー
内部サーバーエラー
トランザクションをロールバックできません-進行中のSQLステートメント
WEBrick / 1.3.1(Ruby / 1.9.3 / 2011-10-30)at 127.0.0.1:34718
では、なぜSQLite3 :: BusyException:データベースがロックされているのですか?!