加载错误:无法加载此文件--selenium/webdriver/phantomjs。

5

我在我的Cucumber Hooks文件中有这段代码来运行ghost driver,它之前一直可以正常工作,但昨天开始出现错误消息:

Before do
  Selenium::WebDriver::PhantomJS.path = 'C:\phantomjs-2.1.1-windows\bin\phantomjs.exe'
  @browser = Watir::Browser.start "https://www.google.com",  :phantomjs
  @browser.window.maximize    
end

错误信息:

LoadError: cannot load such file -- selenium/webdriver/phantomjs

可能是给定路径上的phantom js文件丢失或被删除了。再次检查路径上的文件。 - Hiten
我已经检查过了,它在那里,但我不知道为什么它不起作用。 - jp2017
打开phantom.js文件的属性,勾选可执行。 - Hiten
我正在使用Windows,所以我从这里下载了软件包:http://phantomjs.org/download.html 它在\bin文件夹中有一个名为phantom.exe的文件,它可以正常工作。只是无法从RubyMine再次运行它。 - jp2017
你能提供完整的异常信息吗?另外,你在昨天和今天之间有做任何更改吗?例如升级了gem等。 - Justin Ko
我收到的唯一信息就是我在上面提到的错误信息。我升级了https://gist.github.com/anonymous/30a87a31817be9726ce78011d5df9bb4。 - jp2017
2个回答

7

是的,从Selenium 3.8开始我们已经移除了对PhantomJS的支持。PhantomJS项目已不再维护。如果您确实需要无界面浏览器,请尝试使用Chrome或Firefox的无界面选项。


有没有计划使删除更加明显?在变更日志中,3.6添加了弃用消息。3.8没有提到任何关于删除的内容。而且如果支持被删除,为什么在Selenium::WebDriver.for中它不会被作为有效键删除呢? - Justin Ko
是的,有些混淆,我们正在Selenium的Slack上讨论。 - titusfortner

5

对于那些遇到这个错误的人,你可以通过在 Gemfile 中锁定 selenium-webdriver 版本来解决它:

gem 'selenium-webdriver', '~> 3.6.0'

然后运行bundle update降级。

(如果selenium-webdriver只是作为watir或其他库的依赖项加载,您可能甚至没有在Gemfile中指定它。)

长期解决方案当然是从PhantomJS转移到Chrome或Firefox无头浏览器。


你好,我已经安装了3.6版本并且它可以正常工作。我也尝试了Chrome和Firefox无头模式,但是它不支持https的url。你知道如何解决这个问题吗? - jp2017

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接