5

我有一个带有标签的黄瓜场景@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://stackoverflow.com/questions/8428405/cucumber-tests-jquery-does-not-loaded-in-webdriverconfig.assets.debug = true对我来说会导致错误 - 我认为它只是 rails 3。有没有等效的rails 2?或其他一些解决方案?

感谢任何建议 - 最大

4

1 回答 1

0

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

Gemfile:
  gem 'debugger'

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

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

根据 jquery 问题,您可以尝试使用 $ 而不是 jQuery 吗?

亚历克斯。

于 2012-08-30T11:50:11.190 回答