linux 下的按键精灵 xdotool

  • date: 2022-08-23
  • lastmod: 2022-09-09

背景

学校开展啥在线入学教育,要看视频、答题,有的还需要多次手动翻页。针对手动翻页尝试在浏览器F12就会退出到平台的登陆入口而非学校的统一认证登陆。。看来js不太好搞,大佬们说搞一个按键精灵就好了。

案例

鼠标自动点击“下一页”、“翻页” : watch -n 3 xdotool click 1

运行该代码之后将光标移动到下一页按钮出现的地方即可,每间隔3秒会自动点击一次。缺点也有,就是不同的学习课程的位置不是固定在右下角,有的在正中下方,移动鼠标到对应位置就好。自动答题暂时是没有的

自动点击某位置的按钮

  1. 首先用命令获取该位置的坐标: xdotool getmouselocation
  2. 然后用移动指令: xdotool mousemove x y
  3. 鼠标左键点击指令: xdotool click 1

我有5个竖排的按钮需要点击,点击之后还会有一个弹窗,弹窗的按钮也需要点击,分别获取6个按钮的坐标,然后编写即可

# 点击一个按钮的测试脚本,文件名tmp.sh
# usage:watch -n 3 bash tmp.sh
xdotool mousemove 800 679
xdotool click 1
xdotool mousemove 973 976
xdotool click 1
xdotool click 1

watch 的间隔时间可查(man watch)是最小0.1s,而且按钮之间应该加一个点击延迟(sleep 0.01),最后我没有使用watch,因为0.1s这个间隔还是有点慢,于是最终在脚本里写了一个死循环,如下所示

temp.sh

# 点击多个按钮带弹窗的测试脚本,文件名temp.sh
# usage:bash temp.sh
#!/bin/bash
while [ 1 ]
doxdotool mousemove 800 679 # 移动到按钮一的位置xdotool click 1 # 左键点击按钮xdotool mousemove 973 976 # 点击弹窗的确认按钮xdotool click 1sleep 0.001 # 延迟1msxdotool click 1 # 点击弹窗2的确认按钮sleep 0.01xdotool mousemove 800 823xdotool click 1xdotool mousemove 973 976xdotool click 1sleep 0.001xdotool click 1sleep 0.01xdotool mousemove 800 973xdotool click 1xdotool mousemove 973 976xdotool click 1sleep 0.001xdotool click 1sleep 0.01xdotool mousemove 800 1115xdotool click 1xdotool mousemove 973 976xdotool click 1sleep 0.001xdotool click 1sleep 0.01xdotool mousemove 800 1249xdotool click 1xdotool mousemove 973 976xdotool click 1sleep 0.001xdotool click 1sleep 0.01
done

退出点击进程

如果间隔比较长,能够把鼠标移动回终端并点击关闭就退出了,或者点击后Ctrl+C;如果时间间隔压根不够把鼠标挪动到终端,那么这个时候就要从桌面切换到tty了(Ctrl+Alt+F2),通过 ps查找进程号,用kill -9 关闭进程。比如使用 watch -n 0.1 bash tmp.sh 时就要切换到tty,然后使用 ps aux | grep watch 查找进程号,假设显示的进程号是911,则关闭进程指令为 kill -9 911;再比如死循环的 bash temp.sh,然后使用 ps aux | grep bash 查找进程号,假设显示的进程号是1988,则关闭进程指令为 kill -9 1988,最后使用 Ctrl+Alt+F1 切回桌面,如果点击进程还在跑,多半是进程号搞错了。

参考

  • 推荐软件–linux下的按键精灵–图形界面 2010-10-14 bailiangcn:xdotoolgui

    回答摘录

    若干基本用法:
    xdotool mousemove x y
    将鼠标移动到在屏幕上特定的X和Y坐标位置
    xdotool click 1
    点击鼠标左键,1表示左键,2表示中键,3表示右键。
    xdotool key ctrl+l
    同时按下ctrl和l键更多命令详解请输入:man xdotool这个工具没有内置延时和循环功能。不过linux下提倡的就是一个软件做一件事,这个功能只要稍微组合一下就能实现了。
    举个例子:
    如果要鼠标每隔10秒点击左键一次
    我们可以用终端下的watch命令组合实现
    watch -n 10 xdotool click 1
    
  • Linux下的按键精灵xdotool IT老吴 2020-03-03

linux 下的按键精灵 xdotool相关推荐

  1. Linux下的按键精灵xdotool

    文章目录 xdotool 安装 功能 例子 xdotool Linux下的按键精灵,提供了比较全面的功能. 安装 yum install xdotool 功能 部分功能,可能描述不准确,所以没标注. ...

  2. ubuntu下的按键精灵xdotool

    软件首页:http://www.semicomplete.com/projects/xdotool/ 若干基本用法: xdotool mousemove x y 将鼠标移动到在屏幕上特定的X和Y坐标位 ...

  3. Linux下的自动化工具xdotool

    http://i.scwy.net/it/2019/113019-xdotool/ 在Ubuntu桌面系统下,有时候想偷个懒.毕竟都Ubuntu了,还不允许更自动一些吗.结合语音识别,就可以懒到家了. ...

  4. ubuntu下按键精灵xdotool

    ubuntu下按键精灵xdotool,安装命令sudo apt install xdotool 但是没有界面,需要安装xdotool-gui,但是ubuntu20.04不兼容xdotoolgui_1. ...

  5. linux下屏幕按键显示软件

    今天给大家推荐一款linux下的好用的屏幕按键显示软件,方便大家教学或者其他使用. 软件名称:keymon 安装:sudo apt-get install keymon 安装后打开软件,命令行输入:k ...

  6. Linux下的按键输入驱动开发

    之前的文章中,介绍了各种各样的花式点灯方法,其本质都是通过操作GPIO输出高低电平,控制灯的亮灭.按键驱动也是要操作GPIO,只不过是要读取GPIO的高低电平.在驱动程序中使用一个整形变量来表示按键值 ...

  7. linux用户空间注册按键事件,linux下获取按键响应事件

    1.问题 通过一个死循环将读取键盘对应的设备文件将触发键盘事件在屏幕上打印出来,按esc退出程序 代码是在unbuntu10.04编译执行通过的 2.input_event描述 在Linux内核中,i ...

  8. linux下获取按键响应事件(转)

    1.问题  通过一个死循环将读取键盘对应的设备文件将触发键盘事件在屏幕上打印出来,按esc退出程序  代码是在unbuntu10.04编译执行通过的 2.input_event描述  在Linux内核 ...

  9. Linux下的按键驱动

    某主板按键dts配置如下 gpio_keys {compatible = "gpio-keys";input-name = "gpio-keys";status ...

  10. python和按键精灵自动化测试_按键精灵对APP自动化测试(上)

    简单介绍下应用背景:测试安卓app时发现重复点击某一按钮的时候会出现报错,开发修复后提交测试.如果采用手动点击按钮,效率不高,在领导提示下使用按键精灵实现自动操作. 一.       安卓手机按键精灵 ...

最新文章

  1. vector int string 化
  2. 机器学习之SVM原理与案例
  3. filebeat6.2.3收集多个日志源 多个topic输出
  4. android:layout_gravity和android:gravity的区别
  5. 一句代码实现 HTML5 语音搜索
  6. 做过这个NLP项目的面试通过率高达 90%!!
  7. mysql查看数据类型命令_mysql菜鸟指南(增删查改、数据类型、常用命令)
  8. 图表如何又酷又实用?这个功能,能让大屏做出专家级效果
  9. Python面试必须要了解的15个问题
  10. 2019帝豪gs装软件_继悬浮式车顶之后,2019年这些设计将会成为主流!
  11. 煤矿调度计算机使用管理制度,煤矿调度文档管理制度(参考).doc
  12. Linux readelf命令
  13. xvidcore交叉编译
  14. Java基础 - 网络编程 - netstat指令,UDP通信编程和网络编程总练习
  15. MetaLife与ESTV建立战略合作伙伴关系并任命其首席执行官Eric Yoon为顾问
  16. 利用Python查找出Android项目中未使用的string
  17. 南陵中学2021高考成绩查询,南陵中学举行2021届高三距高考200天动员大会
  18. azkaban报Error Chunking during uploading files to db
  19. Html中文本域中加图片,如何在文本框中加图片
  20. 激活函数(sigmoid、tanh、ReLU、leaky ReLU)

热门文章

  1. java设置http超时时间_Java设置Http请求超时时间
  2. UAT测试和SIT测试的区别
  3. PyCharm主题自定义
  4. sps的process插件安装包_PROCESS插件安装及使用
  5. sql server2016还原数据库
  6. 股票历史数据下载工具_免费在线批量下载股票历史数据工具
  7. ibm服务器如何安装linux,IBM服务器安装步骤
  8. Python——类的实例
  9. 2017年美国大学生数学建模竞赛F题优秀论文解读
  10. Linux 学习步骤(从入门到精通)