【问题标题】:LoadError: cannot load such file -- selenium/webdriver/phantomjsLoadError: 无法加载此类文件 -- selenium/webdriver/phantomjs
【发布时间】:2018-05-22 12:27:23
【问题描述】:

我的 Cucumber Hooks 文件中有这段代码来运行它一直在工作的 ghost 驱动程序,直到昨天我才开始看到错误消息:

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

【问题讨论】:

  • 可能是给定路径上的幻像js文件丢失或删除。再次检查路径上的文件。
  • 我已经检查过了,不知道为什么不工作。
  • 打开phantom.js文件的属性,勾选可执行文件。
  • 我使用的是 Window,所以我从这里下载了包:phantomjs.org/download.html 它在 \bin 文件夹中有一个名为 phantom.exe 的文件,它正在工作。只是无法让它从 RubyMine 再次工作。
  • 你能给出完整的例外吗?你昨天和今天之间有没有改变任何东西 - 例如你升级了宝石等等。

标签: ruby selenium phantomjs watir


【解决方案1】:

是的,我们已经从 Selenium 3.8 中删除了对 PhantomJS 的支持。 PhantomJS 项目is no longer being maintained。如果您确实需要无头,请调查 Chrome 或 Firefox 无头选项。

【讨论】:

  • 是否有计划使删除更加明显?在更改日志中,3.6 添加了弃用消息。 3.8 没有说任何关于删除的内容。同样奇怪的是,如果支持被删除,它不会作为Selenium::WebDriver.for 中的有效键被删除?
  • 是的,有些混乱,我们正在 Selenium slack 中讨论它。
【解决方案2】:

对于遇到此错误的人,您可以通过在 Gemfile 中锁定 selenium-webdriver 版本来解决它,如下所示:

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

然后bundle update 降级。

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

当然,长期的解决办法是从 PhantomJS 转移到 Chrome 或 Firefox 无头。

【讨论】:

  • 您好,我已经安装了 3.6 版本并且可以正常工作。我也尝试过无头 Chrome 和 Firefox,但它不喜欢带有 https 的 url。你知道如何解决这个问题吗?
猜你喜欢
  • 1970-01-01
  • 2015-05-30
  • 2015-01-22
  • 2012-10-25
  • 2020-12-05
  • 2017-03-18
  • 2018-07-31
  • 2015-03-20
  • 2012-02-27
相关资源
最近更新 更多