xdotool可以在linux终端下模拟键盘和鼠标操作
官网:xdotool - fake keyboard/mouse input, window management, and more - semicomplete
安装:
apt-get install xdotool
使用方法:
模拟击键a [*注1]
xdotool key a
模拟按两个键alt+tab
xdotool key alt+Tab
自动输入word
xdotool type 'word'
自动输入word带回车
xdotool type "word
"
模拟鼠标移动+点击,这会让鼠标移动到(x,y),然后点击鼠标左键。“1”代表鼠标左键,“2”则是滚轮,“3”则是右键。
xdotool mousemove 655 320 click 1
获取窗口名称
$ xdotool search "Chrome"
Defaulting to search window name, class, and classname
37748741
$ xdotool getwindowname 37748741
马路的个人网站_MaLu.me - Google Chrome
在打开的窗口中搜索对应名称的窗口,并聚焦于该窗口,然后模拟击键。
#!/bin/bash
export DISPLAY=:1
/opt/google/chrome/chrome --user-data-dir --display=:1 &
#/opt/google/chrome/chrome --user-data-dir --app=http://s.malu.me/ --start-maximized --enable-low-end-device-mode --disable-translate --display=:1 &
WID=`xdotool search --name "Chrome" | head -1`
xdotool windowfocus $WID
xdotool key ctrl+49
sleep 1
xdotool type 'malu.me'
xdotool key 65
export DISPLAY=:1 用于设置X11默认显示通道,在打开浏览器中会用到
[*注1]: xdotool key ctrl+l 这种别名不再工作。应该使用在xev的输出中找到的值,来替换l。
比如键入l输出:
KeyPress event, serial 40, synthetic NO, window 0x2000001,
root 0x25, subw 0x0, time 180522539, (110,120), root:(661,427),
state 0x0, keycode 49 (keysym 0x6c, l), same_screen YES,
XLookupString gives 1 bytes: (6c) "l"
XmbLookupString gives 1 bytes: (6c) "l"
XFilterEvent returns: False
那应该用49替换字母l
chrome常用命令行参数介绍:
1. --incognito,设置浏览器直接从隐身模式启动功能,您在隐身模式中浏览网页不会保留浏览器记录、Cookie存储库或搜索记录,会保留下载的文件和已存的书签。
2. --start-maximized,启动时自动最大化窗口。
3. --lang=en_US,设置语言为英语_美国(这里可以写各种语言代码),快速切换显示语言,而免去在设置中点击数次并重启的麻烦。
4. --user-agent="thatis my user agent"(如果字符串不含空格则无需引号),设置伪造的用户代理字符串,可以验证网站对于不同浏览器采取的不同的行为。
5. --user-data-dir=/userdata,设置自定义用户数据位置,对于系统盘空间较小,希望把用户数据(包含缓存)放在其他位置的用户非常有用。
6. --disable-images,设置为禁止图像,对于流量有限制,或者其他不想看图的人群非常有用。
7. --no-sandbox,不使用沙箱,在和某些杀毒软件有冲突时,可以关闭沙箱。
8. --trusted-plugins,仅使用信任的插件。
9. --restore-last-session,启动时恢复最近的会话。
Chrome命令行参数之基础类:
1. --debug-on-start,如果程序包含基础/调试/debug_on_start_win.h,(仅限于Windows),该过程将自启动JIT系统注册的调试器,并会等待60秒钟,让调试器连接到自身并打一个断点。
2. --disable-breakpad,禁用崩溃报告。
3. --wait-for-debugger,在60秒之内,等待一个调试器接入Chrome。
4.--test-child-process,当运行特定的派生子进程的测试,此开关会告诉测试框架,当前进程是一个子进程。
5.--enable-crash-reporter,表示崩溃报告应该启用。由辅助进程不能访问到所需文件的平台作出这个决定,此标志由内部产生。
6.--enable-crash-reporter-for-testing,用于在调试环境中打开Breakpad(一个非常实用的跨平台的崩溃转储和分析模块)崩溃报告,崩溃报告在那里通常会被编译,但被禁用了。
7.--full-memory-crash-report,生成全部内存崩溃报告。
8.--enable-low-end-device-mode,改写低端设备检测,启用低端设备的优化。
9.--disable-low-end-device-mode,改写低端设备检测,禁止低端设备的优化。
Chrome其它收集命命令行参数:
disable-accelerated-compositing 禁用加速
disable-winsta 禁用渲染备用窗口
disable-application-cache 禁用应用程序缓存
disable-apps 禁用应用程序
disable-audio 禁用音频
disable-auth-negotiate-cname-lookup
disable-background-networking 禁用后台联网
disable-backing-store-limit 禁用存储数量限制,可以防止在打开大量的标签窗口时,页面出现闪烁的现象。
disable-byte-range-support 禁用缓存的支持字节范围
disable-click-to-play 禁用点击播放
disable-connect-backup-jobs 如果超过指定的时间,则禁用建立备份的TCP连接
disable-content-prefetch 禁用内容预取
disable-custom-jumplist 禁用Windows 7的JumpList自定义功能
disable-databases 禁用HTML5的数据库支持
disable-desktop-notifications 禁用桌面通知(默认窗口启用)
disable-dev-tools 禁用所有页面的渲染检测
disable-device-orientation 禁用设备向导
disable-webgl 禁用WebGL实验功能
disable-extensions 禁用扩展
disable-extensions-file-access-check 禁用扩展文件访问检查
disable-geolocation 禁用地理位置的JavaScript API
disable-glsl-translator 禁用GLSL翻译
disable-hang-monitor 禁止任务管理器监视功能
disable-internal-flash 禁用内部的Flash Player
disable-ipv6 禁用IPv6
disable-preconnect 禁用TCP/IP协议
disable-javascript 禁用JS
disable-java 禁用Java
disable-local-storage 禁用本地存储
disable-logging 禁用调试记录
disable-new-tab-first-run 禁用新标签显示的通知
disable-outdated-plugins 禁用过时的插件
disable-plugins 禁止插件
disable-popup-blocking 禁用阻止弹出窗口
disable-prompt-on-repost
disable-remote-fonts 禁用远程字体
disable-renderer-accessibility 禁用渲染辅助功能
disable-restore-background-contents 当浏览器重新启动后之前的网址被记录
disable-session-storage 禁用会话存储
disable-shared-workers 禁用共享,功能尚未完成
disable-site-specific-quirks 禁用指定站点设置的WebKit兼容性问题。
disable-speech-input 禁用语音输入
disable-ssl-false-start 禁用SSL的虚假启动
disable-sync 禁用同步
disable-sync-apps 禁用同步应用程序
disable-sync-autofill 禁用同步自动填表
disable-sync-bookmarks 禁用同步书签
disable-sync-extensions 禁用同步扩展
disable-sync-passwords 禁用同步密码
disable-sync-preferences 禁用同步偏好设置
disable-sync-sessions 禁用同步会话
disable-sync-themes 禁用同步主题(皮肤)
disable-sync-typed-urls 禁用同步输入网址
disable-tab-closeable-state-watcher
disable-translate 禁用翻译
disable-web-resources 禁用网络资源后台加载服务
disable-web-security 禁用网络安全提示?
disable-web-sockets 禁用网络接口
safebrowsing-disable-auto-update 禁用自动升级(安全浏览)
disable-tls 禁用设置XMPP协议的客户端同步控制
disable-flash-core-animation 禁用Flash核心动画
disable-hole-punching 禁用Punching
disable-seccomp-sandbox 禁用沙盒
no-sandbox 启动无沙盒模式运行