在自动化中,我正在尝试使用 rautomation 处理窗口弹出窗口。我安装了以下宝石:
ffi (1.9.0 x86-mingw32, 1.8.1 x86-mingw32)
rautomation (0.9.2)
我试过以下:
require 'rautomation'
window = RAutomation::Window.new :title => "Opening rautomation-0.9.2.gem"
=> #<RAutomation::Window:0x2c4bd30 @adapter=:win_32, @window=#<RAutomation::Adapter::Win32::Window:0x2ccd7c8 @container=#<RAutomation::Windo
w:0x2c4bd30 ...>, @locators={:index=>0, :title=>"Opening rautomation-0.9.2.gem"}>>
默认情况下,适配器未设置为 ffi(它设置为 win_32,我使用的是 windows 机器),因此我尝试将其设置为 ffi:
window.hwnd
=> 1508532
new_window = RAutomation::Window.new :hwnd => 1508532, :adapter => :ffi
但这会导致以下错误:
NameError: uninitialized constant RAutomation::Adapter::Ffi
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rautomation-0.9.2/lib/rautomation/window.rb:67:in `const_get'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rautomation-0.9.2/lib/rautomation/window.rb:67:in `initialize'
from (irb):7:in `new'
from (irb):7
from C:/Ruby193/bin/irb:12:in `<main>'
以下是我的问题:
- 为什么即使我的机器上安装了 ffi,适配器也没有设置为 ffi?
- 如何解决我尝试将适配器设置为 ffi 时遇到的错误?(为此我也做过:设置 RAUTOMATION_ADAPTER=ffi 仍然无法正常工作)