我需要能够以编程方式触发特定坐标处的鼠标点击。我发现AutoIt和auto_click gem都可以提供这种能力,但仅限于Windows。我还发现了rautomation gem,它旨在提供跨平台功能,但目前似乎不支持除Windows以外的任何功能。
还有其他任何宝石允许直接从Ruby自动点击特定x / y坐标吗?
答案 0 :(得分:2)
我认为这是一项严重依赖系统的任务。您应该为代码提供一种加载系统相关宝石的方法(Win上的AutoIt,Linux上的Automations)。如果您的目标是Mac OS,则可以通过FFI库从CGPostMouseEvent
调用CGRemoteOperation.h
来构建自己的lib。
例如:
要求'ffi'
module Mouse
extend FFI::Library
ffi_lib '/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics'
class CGPoint < FFI::Struct
layout :x, :double, :y, :double
end
attach_function :CGPostMouseEvent, [ CGPoint, :bool, :int, :bool ], :void
end
point = Mouse::CGPoint.new
point[:x] = 100
point[:y] = 100
Mouse::CGPostMouseEvent(point, true, 1, true)
答案 1 :(得分:1)
看一下rumouse gem。它提供简单的API并支持linux,osx和windows。