安装 capybara-webkit 后,我尝试在规范中进行测试,这是我的测试:
Capybara.default_driver = :webkit
page.execute_script("$('#submit_direction').attr('value', '1');$('#quizForm').submit()")
然后,我得到这个错误:
/home/sam/.rvm/gems/ruby-1.9.3-p0@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:136: warning: Insecure world writable dir /home/sam/Documents/RoR in PATH, mode 040777 undefined|0|ReferenceError: Can't find variable: $
Capybara::Driver::Webkit::WebkitInvalidResponseError: Javascript failed to execute
有什么想法吗?
最佳答案
我猜 capybara-webkit JS 驱动有点狡猾。
来自 capybara github page :
For simple expressions, you can return the result of the script. Note that this may break with more complicated expressions:
result = page.evaluate_script('4 + 4');
但是,从您那里的代码来看,您可以使用 Capybara 本身做很多事情。
$('#submit_direction').attr('value', '1')
可以替换为:
page.find("#submit_direction").set('1')
和
$('#quizForm').submit()
可以替换为:
page.click_on('quizForm')
见 capybara docs on capybara actions
关于ruby-on-rails-3 - rails 3.1,capybara-webkit,为什么 page.execute_script 失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8964303/