2012-12-12 2 views
3

저는 루비를 처음 접했고 이상한 문제가 있습니다. 루비 1.9.3p125, 오라클 11gXE (ver 11.2.0.2.0)를 64 비트 Win7에 설치했습니다. 최대한 빨리이 작업을 수행으로oci8이 필요하면 스크립트가 실패합니다.

require 'oci8' 
conn = OCI8.new('username/passwd') 
conn.logoff 

:하지만

require 'watir-webdriver' 
browser = Watir::Browser.new 
browser.close 

또한이 스크립트 : 나는 아무 문제없이이 스크립트를 실행 할 수 있어요

require 'watir-webdriver' 
require 'oci8' 
browser = Watir::Browser.new 
browser.close 

일이 잘못 - I 이 오류가 발생합니다 :

C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': 193: %1 is not a valid Win32 application. - C:/Ruby193/lib/ruby/1.9.1/i386-mingw32/openssl.so (LoadError) 
     from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
     from C:/Ruby193/lib/ruby/1.9.1/openssl.rb:17:in `<top (required)>' 
     from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
     from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
     from C:/Ruby193/lib/ruby/1.9.1/net/https.rb:22:in `<top (required)>' 
     from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
     from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.26.0/lib/selenium/webdriver/remote/http/default.rb:1:in `<top (required)>' 
     from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
     from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.26.0/lib/selenium/webdriver/remote.rb:9:in `<top (required)>' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.26.0/lib/selenium/webdriver/firefox/bridge.rb:6:in `<module:Firefox>' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.26.0/lib/selenium/webdriver/firefox/bridge.rb:3:in `<module:WebDriver>' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.26.0/lib/selenium/webdriver/firefox/bridge.rb:2:in `<module:Selenium>' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.26.0/lib/selenium/webdriver/firefox/bridge.rb:1:in `<top (required)>' 
     from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
     from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.26.0/lib/selenium/webdriver/firefox.rb:12:in `<top (required)>' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.26.0/lib/selenium/webdriver/common/driver.rb:31:in `for' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.26.0/lib/selenium/webdriver.rb:65:in `for' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.1/lib/watir-webdriver/browser.rb:35:in `initialize' 
     from problem.rb:3:in `new' 
     from problem.rb:3:in `<main>' 
Press any key to continue . . . 

반면에 이 문제가 해결되었습니다.

require 'watir-webdriver' 
require 'oci8' 
conn = OCI8.new('username/passwd') 
conn.logoff 

해결해 주시겠습니까? 'watir-webdriver'는 'oci8'이 필요할 때 몇 가지 문제가있는 것으로 보입니다. 그러나 이것은 잘못된 가정 일 수 있습니다 - 구성 문제 일 수 있습니다. 당신의 도움을 주셔서 감사합니다!

+0

ruby ​​devkit을 설치 했습니까? 시도하지 않으면 devkit을 설치하고 watir-webdriver 및 oci8 보석을 다시 설치하십시오. – bkone

+0

@ xboxer21 팁 주셔서 감사합니다 - 사실 저는 devir을 watir-webdriver 설치 전에 설치 했었습니다 ...하지만 아마도 제거하고 설치하려고 할 것입니다 - 어쨌든 이것을 수정하는 방법에 대한 다른 제안은 없습니다. – tom

답변

0

다음 코드를 시도해보십시오.

require 'watir-webdriver' 
require 'openssl' # <-- Add this line to load openssl.so before oci8. 
require 'oci8' 
browser = Watir::Browser.new 
browser.close 

openssl.so가로드 될 때 LoadError가 발생합니다. 필자가 테스트 한 것처럼 oci8이 동일한 오류를 생성하고 역변환 된 후 openssl을로드하는 것이 좋습니다.

+0

대단히 고마워요. - 문제가 해결되었습니다! – tom

관련 문제