2011-11-01 4 views
12

Vấn đề này được bugging tôi trong một vài ngày bây giờ ... Bất cứ khi nào tôi đang sử dụng phương pháp .bring_to_frontkhông có tập tin để tải - ffi_c (LoadError)

require "rubygems" 
require "watir" 

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

tôi nhận được lỗi này:

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

Tôi đã thử gỡ cài đặt và cài đặt lại ffi/watir/ruby ​​/ netbeans mà không thành công.

dòng 36 là trong 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 

* GEMS ĐỊA PHƯƠNG *

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) 
+1

0) hoạt động cho tôi với ruby ​​1.9.2 và Watir 2.0.3 1) bạn đang sử dụng phiên bản Watir nào. 2) Chúng tôi cần thêm lỗi. Dòng 36 trong tệp được chỉ định đang làm việc với một tham số được truyền cho phương thức đó, cần phải xem nơi được gọi là dòng đó. 3) Bạn có thể làm 'Gem List' từ dòng lệnh và thêm thông tin đó vào câu hỏi của bạn. –

+0

1. ruby ​​1.9.2 + watir 2.0.4 – drake10k

+0

Cảm ơn bạn đã bao gồm thông tin bổ sung, tuy nhiên đó là nhiều ERROR thực sự mà tôi muốn xem, tôi đã đi và xem tập tin custom_require .. –

Trả lời

20

Tôi nghĩ rằng các tập tin bị mất tích liên quan đến đá quý FFI. Tôi đã có vấn đề cố gắng sử dụng FFI v1.0.10 bản thân mình (khi nó đã đi để cài đặt, và do một cái gì đó liên quan đến mã webdriver) vì vậy trên hộp của tôi, tôi đã v1.0.9 của đá quý được cài đặt.

Tôi muốn nói rằng không có gì nhiều để mất bằng cách cố gắng cuộn đá quý đó trở lại phiên bản. Từ kiểu dòng lệnh

gem uninstall ffi 

khi nó đã được thực hiện sau đó

gem install ffi -v 1.0.9 

Xem nếu mà sửa chữa những thứ cho bạn.

Cập nhật đá quý FFI đã cập nhật qua 1.1.0 và các phiên bản này hoạt động tốt với watir và watir-webdriver, tuy nhiên đá quý không được biên dịch trước và phải biên dịch mã khi cài đặt. Điều này có nghĩa là nếu bạn đang chạy trên PC, bạn sẽ cần phải cài đặt bộ phát triển Ruby cho windows, hay còn gọi là 'devkit', bạn có thể lấy nó từ downloads page trên trang rubyinstaller

tải xuống và cài đặt devkit trước, sau đó mở lệnh mới cửa sổ dòng và sử dụng

gem install ffi 

để có được phiên bản mới nhất của đá quý FFI

nếu vì một lý do nào đó không làm việc cho bạn, bạn luôn có thể sử dụng các hướng dẫn ban đầu ở trên để cài đặt phiên bản hơi cũ của viên đá quý FFI

+3

Thực tế bạn là đúng. Điều đó giải quyết được vấn đề. Cảm ơn sự giúp đỡ của bạn. – drake10k

+1

Làm việc cho tôi cũng được, cảm ơn bạn! – holaSenor

+1

cảm ơn bạn rất nhiều. Đã có cùng một vấn đề, tìm thấy điều này và nó cũng giải quyết được vấn đề của tôi. –