我可以在与 capybara 的链接中执行 javascriptclick_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) 开始 GET "/student_courses" for 127.0.0.1 更新 "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) 在 127.0.0.1:34718
那么,为什么 SQLite3::BusyException: 数据库现在被锁定了?!