angularjs - angular.js 和 phantom.js 错误

标签 angularjs phantomjs poltergeist

当我尝试通过此堆栈运行 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 。但在我启动 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 指令(没有实例化 Controller 等)的情况下,例如

<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 运行。这是一个已知的问题?我能过去吗?谢谢。

乔恩

最佳答案

没关系。 事实证明,这是另一个库 zurb-foundation(twitter bootstrap 的替代品)中的一个错误,一周前已修复,但 gem 更新还没有。按如下方式更新 Gemfile 修复了该问题。

gem 'zurb-foundation', github: 'zurb/foundation'

关于angularjs - angular.js 和 phantom.js 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14534785/

相关文章:

javascript - 你如何从 Ubuntu 中完全删除 Ionic 和 Cordova 安装?

javascript - ng 类条件改变但不应用新样式

ruby-on-rails - 测试之间的 Rails 清理数据库不起作用

javascript - 显示链或消息的 Angular Directive(指令)

javascript - 普通 JavaScript 到 AngularJS

javascript - 无法使用 CasperJS 触发 GWT 列表框 ChangeHandler

javascript - phantomjs - 页面加载后执行 Javascript 函数,然后输出新的更改

python-2.7 - 如何查看“屏幕截图:可通过屏幕获取”?

ruby - 为什么 Poltergeist 驱动程序找不到 Capybara (Ruby) 成功找到的某些元素

ruby - 有没有办法用 Cucumber/Capybara/Poltergeist 在 Rails 4 中测试服务器发送的事件?