Cucumber (rails 2) 没有加载 jQuery

Posted

技术标签:

【中文标题】Cucumber (rails 2) 没有加载 jQuery【英文标题】:Cucumber (rails 2) isn't loading jQuery 【发布时间】:2012-02-06 05:58:53 【问题描述】:

我有一个用@javascript 标记的黄瓜场景,我正在用一些非常基本的内联js 调用对其进行测试。我正在使用

Capybara.javascript_driver = :webkit

如果我在页面上执行此操作,在有问题的元素之后(有 id="ajax_test_results",但现在不要担心 ajax)

document.getElementById('ajax_test_results').innerhtml = 'Replaced with basic js, ie not jquery, without waiting for pageLoad';  

然后它可以工作:如果我在测试中渲染页面,我可以看到 js 已经运行并更新了内容。但是,如果我尝试用 jquery 做同样的事情

jQuery("#ajax_test_results").html("updated with basic jquery dom manipulation, without waiting for document.ready");  

然后它不起作用。我认为 jquery 没有被加载,但我不知道如何调试它。

有什么想法吗?我看到这篇文章看起来很有希望https://***.com/questions/8428405/cucumber-tests-jquery-does-not-loaded-in-webdriver 但config.assets.debug = true 对我来说是一个错误——我认为它只是rails 3。有没有等效的rails 2?还是其他解决方案?

感谢任何建议 - 最大

【问题讨论】:

我也有同样的问题,我不清楚你会告诉黄瓜在哪里加载 jQuery。 会不会是 jquery 还没有加载? 看起来很明显,但您可以通过在页面呈现和您尝试测试元素是否存在之间调用sleep 来调试它 【参考方案1】:

对于调试,您可以使用 console.log('message') 或 alert 语句。它会将您的消息输出到终端屏幕。你也可以使用:

Gemfile:
  gem 'debugger'

When /your step/ do
  require 'ruby-debug'
  debugger
end

然后您可以使用 page.evaluate_script 或 page.execute_script 方法进行调试。这很容易做到。

根据 jquery 的问题,你可以尝试使用 $ 代替 jQuery 吗?

亚历克斯。

【讨论】:

以上是关于Cucumber (rails 2) 没有加载 jQuery的主要内容,如果未能解决你的问题,请参考以下文章

使用 AJAX 请求在 Cucumber 中自动加载相关的竞争条件

Rails、Cucumber、Capybara:会话不持久

Rails + Cucumber/Capybara:如何在测试中设置/检索 cookie?

应用程序已初始化。 (RuntimeError)在使用Cucumber和虚拟应用程序测试Rails引擎时

使用 Cucumber 和 Capybara-Webkit 在 Rails 4 上进行 typeahead.js 测试失败

Rails Cucumber使用Capybara测试AJAX