锁定Poltergeist使用的PhantomJS版本

锁定Poltergeist使用的PhantomJS版本,phantomjs,capybara,poltergeist,Phantomjs,Capybara,Poltergeist,我有一个RubyonRails应用程序,它使用Capybara、Poltergeist和PhantomJS运行特性测试 PhantomJS的2.0.0版有一个相当严重的bug,它破坏了很多测试(),因此我想强制应用程序在运行测试时使用不同版本的PhantomJS 在Poltergeist的配置中,如果使用了这个有缺陷的版本,是否可能引发错误或警告,或者我的最佳选择就是在应用程序的自述文件中写上“由于这个缺陷,不要使用版本2.0.0” 目前,我的水豚/地精配置非常基本: Capybara.regi

我有一个RubyonRails应用程序,它使用Capybara、Poltergeist和PhantomJS运行特性测试

PhantomJS的2.0.0版有一个相当严重的bug,它破坏了很多测试(),因此我想强制应用程序在运行测试时使用不同版本的PhantomJS

在Poltergeist的配置中,如果使用了这个有缺陷的版本,是否可能引发错误或警告,或者我的最佳选择就是在应用程序的自述文件中写上“由于这个缺陷,不要使用版本2.0.0”

目前,我的水豚/地精配置非常基本:

Capybara.register_driver :poltergeist do |app|
    Capybara::Poltergeist::Driver.new(app, :timeout => 90)
end

正如@pguardiario所评论的,你可以做如下的事情

if `phantomjs -v`.start_with? '2'
   #output whatever kind of warning you want
end

然而,恶灵大师分支对这个特殊问题有一个解决方案,所以你可以试着用它来代替

只要做
phantomjs-v
,如果它是错误的版本就抱怨。这不是恶灵的问题,这是一个phantomjs的问题。@Sevensacat是的,但我在恶灵中解决了PantomJS的问题,它目前在主分支中,将在下一个版本中发布。我看到了处理这个问题的提交。我不知道它是如何工作的,但在将Poltergeist升级到1.8之后,我的规范再也找不到文件字段了。@Sevensacat,这可能意味着它们的不透明度为0,因为Poltergeist现在会像其他驱动程序一样进行检查-如果你确实让它们的不透明度为0浮动在按钮上,那么你就可以设置样式,然后,您需要使用execute_脚本将css注入元素中,使其可见,然后在测试时在其上设置文件-如果不是案例文件,则在poltergesit上使用可复制的测试案例解决问题