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:如何在测试中设置/检索 cookie?
应用程序已初始化。 (RuntimeError)在使用Cucumber和虚拟应用程序测试Rails引擎时
使用 Cucumber 和 Capybara-Webkit 在 Rails 4 上进行 typeahead.js 测试失败