【发布时间】:2016-01-09 03:31:11
【问题描述】:
我已经花了一个下午的时间,但没有取得任何进展,我真的开始怀疑这是否可能。
我正在使用带有 Headroom 的 Angular 来处理向下滚动时消失的菜单。我的测试是使用 Protractor 完成的,使用 PhantomJS,这就是乐趣的开始。
PhantomJS 不支持.bind(),Headroom 到处使用它,这意味着我需要对其进行填充。应该没问题,但是我做不到。
我想我的问题是,无论我在哪里运行 polyfill 函数,PhantomJS 和测试页面都已经加载,所以已经来不及了,由于 .bind() 不可用,Headroom 将无法加载。
有没有办法在页面加载之前运行这些方法?我知道我可以通过头部的脚本标签将它们添加到我的应用程序中,但我宁愿不向整个应用程序添加仅由测试框架使用的东西。
【问题讨论】:
-
为什么首先要使用 PhantomJS? (stackoverflow.com/a/30088962/771848)
-
我知道支持并不理想,但我们正在使用它。我老板的论点主要是 CI 上的无头 Chrome 维护起来很痛苦(我不知道它到底有多少,我从来没有做过),而且对于我们现在的预算来说,Sauce Labs 的成本太高了.所以 PhantomJS 就是这样。
-
你有机会提供一些代码或jsFiddle吗?我很想看看这里到底发生了什么。
标签: angularjs phantomjs protractor angularjs-e2e polyfills