这个问题现在困扰我几天......每当我使用.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
*本地宝石*
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)
答案 0 :(得分:20)
我认为丢失的文件与FFI宝石有关。我自己尝试使用FFI v1.0.10时遇到了问题(当它安装时,由于与webdriver代码有关的东西)所以在我的盒子上我安装了那个宝石的v1.0.9。
我想说通过尝试将该宝石推回版本并没有太多损失。从命令行输入
gem uninstall ffi
一旦完成,
gem install ffi -v 1.0.9
看看是否能为您解决问题。
更新 FFI gem已经更新了1.1.0并且这些版本似乎可以正常使用watir和watir-webdriver,但是gem没有预编译,并且必须在编译时编译代码它安装。这意味着如果您在PC上运行,则需要安装用于Windows的Ruby开发工具包,也就是'devkit',您可以从rubyinstaller网站上的downloads page获取它
首先下载并安装devkit,然后打开一个新的命令行窗口并使用
gem install ffi
获取最新版本的FFI宝石
如果由于某些原因对你不起作用,你可以随时使用上面的原始说明来安装稍微旧版本的FFI宝石
答案 1 :(得分:0)
gem install ffi --pre
上面的命令在Windows下对我有用