ruby-on-rails-3 - rails 3.1,capybara-webkit,为什么 page.execute_script 失败?

标签 ruby-on-rails-3 ruby-on-rails-plugins capybara capybara-webkit

安装 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/

相关文章:

ruby-on-rails - rails : Management of read/unread messages

ruby-on-rails - capybara 在我的 Rails 应用程序中不工作

ruby-on-rails - 获取 capybara 测试下拉菜单的选择值

ruby-on-rails - Devise 是否与 ruby​​ on rails 3.1 完全兼容?它似乎可以工作,但缺少几个文件

ruby - 使用 rspec、ruby 和 capybara 获取 webelement 的背景颜色

ruby-on-rails-3 - 命名空间中所有 View 的助手

ruby-on-rails - 在 Rails 引擎中使用另一个 gem 的 javascript

javascript - text_field_tag 中的 Rails javascript

ruby-on-rails-3 - 提升路线未找到错误

ruby-on-rails - 使用 Ruby 1.8.7 的 Rails 2 的回形针 2.3.8 gem 的未定义方法 `has_attached_file'