2

当我尝试通过此堆栈运行 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)。

我有很多规范在这个堆栈上运行良好,没有角度。但是在我启动 Angular 的测试页面上,我收到了以下错误。当我使用 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 运行。这是一个已知的问题?我能过去吗?谢谢。

乔恩

4

1 回答 1

2

没关系。原来这是另一个库 zurb-foundation(twitter bootstrap 的替代品)中的一个错误,该库在一周前修复,但 gem 更新还没有。如下更新 Gemfile 修复了它。

gem 'zurb-foundation', github: 'zurb/foundation'
于 2013-01-26T17:11:10.250 回答