我有一个程序
大约一年半前,当我上次运行它时,它运行良好,但是现在运行它会出现错误。
我制作了一个演示该错误的小程序。
程序是-
require 'capybara/poltergeist'
session = Capybara::Session.new(:poltergeist)
print "visiting http://www.wikipedia.com \r\n"
session.visit('http://www.wikipedia.com')
print "no error visiting http://www.wikipedia.com \r\n"
print "visiting https://en.wikipedia.org/wiki/FIFA_World_Cup \r\n"
session.visit('https://en.wikipedia.org/wiki/FIFA_World_Cup')
print "blah" # prints blah so gets that far even though error from previous line.
在运行程序之前,我已经设置了路径@PATH=%PATH%;c:\gecko;c:\Program Files (x86)\Mozilla Firefox;c:\phantomjs\bin
路径始终且仍然很好。第一个session.visit行(用于HTTP而不是https的行)有效
C:\rubytest\wikipediathing\current>ruby wikipediatest2.rb
visiting http://www.wikipedia.com
no error visiting http://www.wikipedia.com
visiting https://en.wikipedia.org/wiki/FIFA_World_Cup
JQMIGRATE: Migrate is installed with logging active, version 3.0.1
This page is using the deprecated ResourceLoader module "schema.UniversalLanguageSelector".
See https://phabricator.wikimedia.org/T205744 for migration info.
blah
C:\rubytest\wikipediathing\current>
我去过https://phabricator.wikimedia.org/T205744,但它只是谈论事件记录,因此在该链接上看不到适用性或任何解决方案。
答案 0 :(得分:2)
从技术上讲,您在这里没有看到错误,而是从页面上使用的某些库中看到了JS控制台日志输出。从显示的内容看,它们是否是错误还是仅是警告尚不清楚,但很可能是维基百科已将页面上使用的库升级为不再支持Poltergeist使用的PhantomJS版本的版本。之所以会发生这种情况,是因为由于不再开发QtWebKit而停止/放弃了PhantomJS的开发。这就使Poltegeist / PhantomJS基本上相当于6-7岁的Safari版本,它已经超过了任何网站所有者/开发人员真正关心支持的时代。长期而言,将程序升级为通过硒驱动程序而不是poltergeist驱动程序使用无头镀铬会更好。