ruby - 没有要加载的文件 -- ffi_c (LoadError)

标签 ruby watir

这个问题困扰了我几天...每当我使用 .bring_to_front 方法时

require "rubygems"
require "watir"

browser = Watir::Browser::new
browser.bring_to_front

我收到这个错误:

(...)rubygems/custom_require.rb:36:in `require': no such file to load -- ffi_c (LoadError)

我尝试卸载并重新安装 ffi/watir/ruby/netbeans,但没有成功。

第 36 行在 custom_require.rb 中

def require path
if Gem.unresolved_deps.empty? or Gem.loaded_path? path then
  gem_original_require path
else
  spec = Gem.searcher.find_active path
  unless spec then
    found_specs = Gem.searcher.find_in_unresolved path
    unless found_specs.empty? then
      found_specs = [found_specs.last]
    else
      found_specs = Gem.searcher.find_in_unresolved_tree path
    end
    found_specs.each do |found_spec|
      Gem.activate_spec found_spec
    end
  end
  return gem_original_require path #problem
end

* 本地 gem *

archive-tar-minitar (0.5.2)
builder (3.0.0)
childprocess (0.2.2)
columnize (0.3.4)
commonwatir (2.0.4)
ffi (1.0.10 x86-mingw32)
firewatir (1.9.4, 1.8.1)
hoe (2.12.3, 2.8.0)
json (1.6.1)
json_pure (1.6.1)
linecache19 (0.5.12)
minitest (2.7.0, 2.6.2, 1.6.0)
nokogiri (1.5.0 x86-mingw32)
rake (0.9.2.2, 0.9.2, 0.8.7)
rautomation (0.6.3)
rdiscount (1.6.8)
rdoc (3.11, 2.5.8)
require_all (1.2.0)
ruby-debug-base19 (0.11.25)
ruby-debug-ide (0.4.16, 0.4.9)
ruby_core_source (0.1.5)
rubyzip (0.9.4)
s4t-utils (1.0.4)
selenium-webdriver (2.10.0)
user-choices (1.1.6.1)
watir (2.0.4)
watir-webdriver (0.3.5)
win32-api (1.4.8 x86-mingw32)
win32-process (0.6.5)
windows-api (0.4.0)
windows-pr (1.2.1)
xml-simple (1.1.1, 1.1.0)

最佳答案

我认为丢失的文件与 FFI gem 有关。我自己在尝试使用 FFI v1.0.10 时遇到了问题(当它开始安装时,由于与 webdriver 代码有关的问题)所以在我的盒子上我安装了那个 gem 的 v1.0.9。

我想说尝试将该 gem 回滚一个版本不会有太大损失。从命令行类型

gem uninstall ffi

完成后

gem install ffi -v 1.0.9

看看这是否能解决您的问题。

更新 FFI gem 自从更新到 1.1.0 之后,这些版本似乎可以很好地与 watir 和 watir-webdriver 一起工作,但是 gem 没有预编译,并且必须编译代码它安装。这意味着如果您在 PC 上运行,则需要安装适用于 Windows 的 Ruby 开发工具包,即 'devkit'。 , 你可以从 downloads page 得到它在 ruby​​installer 网站上

先下载安装devkit,再打开一个新的命令行窗口使用

gem install ffi

获取最新版本的 FFI gem

如果由于某些原因对您不起作用,您始终可以使用上面的原始说明来安装稍旧版本的 FFI gem

关于ruby - 没有要加载的文件 -- ffi_c (LoadError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7964778/

相关文章:

html - 如何在CSS页脚中定位元素

javascript - 如何使用 watir 访问以下元素。我总是出错

ruby-on-rails - watir 中的鼠标移动/鼠标悬停和 JavaScript 评估

google-chrome - 远程网络驱动程序上的 Chrome(通过网格)无法启动

ruby - 如何将方法动态定义为私有(private)?

ruby-on-rails - 在 Windows 和 Linux/OS X 的 Gemfile 中指定不同的 Ruby 版本(例如 1.9.3 与 2.1)?

ruby - 没有这样的文件加载 active_record/associations/has_and_belongs_to_many_association

ruby-on-rails - 计算最近 7 天内创建的记录

ruby-on-rails - Rspec 正在将属性视为方法

ruby - 单击包含 watir gem 的 onclick 的 div