centos上可以安装xdotool, xdotool是linux下的按键精灵,可以自动输入指令,移动鼠标,敲击键盘。
网上搜的时候,发现mousego 简单看了下源码,它里面用到了robotgo
介绍是跨平台的,GUI自动化的go项目
RobotGo, Go Native cross-platform GUI automation
https://www.libhunt.com/compare-robotgo-vs-webview robotgo和webview的对比
https://www.reddit.com/r/learnprogramming/comments/m9kv2v/best_tool_to_automate_gui_like_autohotkey/ 网友给的一些建议
https://blog.csdn.net/caimengxin/article/details/123307605
初步验证robotgo就可以支持跨平台命令行操作之后截图的操作
package main
// ## plan3:
// step1: 获取环境变量路径:比如挂载的硬盘,可以用的网卡
// step2: 请用户确认已经打开了终端(linux中的terminal/windows的mobaxterm, putty, xshell, sercureCRT, etc.)并连上了要操作的服务器。
// step3: 需要依次点击输入页面的左上角和右下角
// step4: 开始输入命令,并且进行截图, 截图存放指定位置
// step5: ....
// step6: 开始输入命令,并且进行截图, 截图存放指定位置
// step7: 执行结束,退出
// ## plan1:
// plan1的难度在于,webshell需要启动到客户的服务器上,可能我们启动服务之后,因为客户的网络问题,访问不到服务.
// https://github.com/xypiie/WebShell 可以启动一个webshell
// 做的方式就是,判断输入的内容,判断web里面的接口,根据特定输入内容,进行截图, 命名.
// ## plan2:
import (
"fmt"
"github.com/go-vgo/robotgo"
)
func main() {
robotgo.MilliSleep(5000)
robotgo.TypeStr("Hello World")
robotgo.KeyTap("enter")
robotgo.TypeStr("だんしゃり", 0, 1)
robotgo.KeyTap("enter")
// robotgo.TypeStr("テストする")
robotgo.TypeStr("Hi, Seattle space needle, Golden gate bridge, One world trade center.")
robotgo.KeyTap("enter")
robotgo.TypeStr("Hi galaxy, hi stars, hi MT.Rainier, hi sea. こんにちは世界.")
robotgo.KeyTap("enter")
robotgo.Sleep(1)
// ustr := uint32(robotgo.CharCodeAt("Test", 0))
// robotgo.UnicodeType(ustr)
robotgo.KeySleep = 100
robotgo.KeyTap("enter")
// robotgo.TypeStr("en")
robotgo.KeyTap("i", "alt", "cmd")
arr := []string{"alt", "cmd"}
robotgo.KeyTap("i", arr)
robotgo.MilliSleep(100)
robotgo.KeyToggle("a")
robotgo.KeyToggle("a", "up")
robotgo.WriteAll("Test")
text, err := robotgo.ReadAll()
if err == nil {
fmt.Println(text)
}
}