Firefox 木偶法

firefox 的 marionette 模块,是 WebDrive 的底层。
与 WebDrive 不同的是,你可以在日常使用中启用它,使用外部脚本操控 firefox。比如用 AutoHotkey 调用 Ws2_32 与 marionette 通信。

这可以实现很多扩展才有的功能。
比如 操作cookies,你可以卸载所有cookie相关的扩展。
比如 操作pref参数。像"User-Agent Switcher" 这样操作User-Agent的扩展,就没必要了。
比如获取网页源码、导出网页为PDF,完美代替"SingleFile"这样的扩展。
当然类似 “关闭 左右/其他 标签”,这样官方缺少的功能也很容易实现。
最重要的,执行 js 代码,大量 tampermonkey 脚本都可以在外部调用,比如"小说下载器"、"视频下载器"之类的
当然,WebDrive 所支持的所有自动化操作也都可以调用。

而这一切都是在非 WebDrive 环境下的日常使用场景发挥作用。相当于你的 AutoHotkey 成了一个万能扩展。

但我不解的是,firefox 用户虽多,但这样用的人却似乎很少。
firefox & marionette 相关资料也寥寥无几。

1 Like

可能是因为门槛高吧?

我还是第一次听说

Ws2代码几十行,marionette 通信是来回 json, 都没什么门槛。

作为firefox和AutoHotKey用户,看见这个帖子还是挺兴奋的。
我知道chrome有一个基于AutoHotKey的Web Automation,但似乎影响也不是很大,不知道是这种东西能带来的用户效用有限,还是总体上过于小众。

1 Like

可能是因为 userChrome.js 就已经很强了?毕竟 userChrome.js 可以调用 dll,可以操作注册表,可以操作内置页面,可以修改 Firefox UI

我觉得最好用的地方,莫过于 AutoHotkey 鼠标手势也可以像手势扩展那样根据网页内容触发命令了。
网址,鼠标下的元素,甚至变量内容。而又没有手势扩展的限制。

因为扩展方便啊.

毕竟对于多数人来说, 很少会 非webdrive 环境