当我尝试通过此堆栈运行phantomjs时出现错误:rails(3.2.11),rspec(2.12.2),capybara(1.1.4),poltergeist(1.0.2),phantomjs(1.8.1) ) 和angular.js(1.1.2)。
我有很多规格在这个堆栈上运行正常,没有角度。但是在我发起角度的测试页面上,我得到了跟随错误。当我使用selenium驱动程序运行规范时,它们会通过。
{"name"=>"visit", "args"=>["http://127.0.0.1:57124/pages/angular"]}
{"response"=>{"status"=>"success"}}
{"name"=>"find", "args"=>["./descendant-or-self::*[contains(normalize-space(.), 'Hello')]"]}
{"error"=>{"name"=>"Poltergeist.JavascriptError", "args"=>[[{"message"=>"TypeError: 'undefined' is not an object (evaluating '$lastDestination.offset().top')", "stack"=>"TypeError: 'undefined' is not an object (evaluating '$lastDestination.offset().top')
at http://127.0.0.1:57124/assets/application.js:13100
at http://127.0.0.1:57124/assets/application.js:3046
at http://127.0.0.1:57124/assets/application.js:2722"}]]}}
即使在最简单的骨骼内容上也会发生这种情况,只有没有任何其他ng指令(没有控制器实例化等),例如
<div ng-app>
<h1>Hello</h1>
</div>
规范看起来像
describe 'ng_posts', type: :request, js: true do
it "should load page" do
visit '/pages/angular'
page.should have_content('Hello')
end
end
这似乎是一个phantom.js错误,因为页面在浏览器中加载(js控制台中没有错误),并且规范与Selenium一起运行。这是一个已知的问题?我能过去吗?感谢。
乔恩
答案 0 :(得分:2)
没关系。 事实证明这是另一个库中的一个错误,zurb-foundation(替换为twitter bootstrap)已于一周前修复但是宝石更新还没有。更新Gemfile如下修复它。
gem 'zurb-foundation', github: 'zurb/foundation'