12

我不断收到此错误:

 Failure/Error: page.evaluate_script('jQuery.active') == 0
 Selenium::WebDriver::Error::JavascriptError:
   ReferenceError: jQuery is not defined

每当我使用脚本时:

wait_until do
  page.evaluate_script('jQuery.active') == 0
end

我已经放入了一个调试器并检查了 jQuery 库。它存在于特定页面上。

我需要配置一些东西才能使它工作吗?

编辑:

Capybara 和 RSpec 的版本是:

rspec-rails-2.11.0 rspec-2.11.0 capybara-1.1.2

4

3 回答 3

1

该错误意味着您的示例确实具有 js:true,但最好在这里发布一个完整的示例。

我发现从默认的 selenium 驱动程序切换到 webkit 为我解决了一些不同的问题,并且示例运行得更快。

本身不是答案,但值得尝试看看它是否能解决您的特定问题。

于 2013-02-21T13:23:54.493 回答
1

我遇到了同样的问题。我通过在测试中删除 binding.pry 并停止 selenium 浏览器来解决它。经过检查,我注意到 js 控制台抛出了错误:Selenium 找不到 .js 文件。

问题的根源在于预装了 spring 的过时 rails 测试应用程序。我已经安装了一个 gem (moment-timezone-rails),但仍在继续使用“spring rspec”运行我的测试,它没有找到 js 文件的正确目录。

重新启动弹簧解决了这个问题。

于 2016-11-18T16:51:14.627 回答
0

我对 FF 41.0.2 和 capybara-webkit 3.4.0 也有同样的问题。将 FF 升级到 53.0.3 后问题消失了

于 2017-05-31T13:51:09.010 回答