sikuli

莫愁逆向无知己

基于微信UI做群发机器人(零)

设计思想

从本质上来说这个项目不算机器人,因目前不能提供自动回复、自动对话的业务场景。

需求说明

公司大部分业务都是ToB的,运营管理着好几百个微信群,产品跟运营私交甚好,因此,在产品的耳边吹了一口气,“我们做一个微信机器人,帮助我们管理微信群吧,最好加上群聊,也可回答一些客户的问题”。产品听了,觉得这事可以有,想想,快到年底了,KPI考核也没什么补救,说不定这也就是一部分。

时间倒退到2017年8月底,产品开始设计一款名叫“微信机器人”的项目。嗯,看名字就觉得很高大上。BTW,设计稿呢???没有,就是口头产品,没进入评审环境,直接告诉我我们需要一款这样的…,能干…最好…的产品,Balabala说了一堆,其实就是做一个能够收发群消息,能够管理群成员,能够干微信能干的事情,最后,这些要干的事情,必须在我们的运营管理后台可操作,消息发送状态可查看

这项殊荣交给我了,限定要在9月初上线。

阅读剩下更多

默认配图
知尽Java第几重

Sikuli的App类中文手册

应用类(App)

class App

使用类或者实例的方法

一般而言,你可以选择使用类的方法(e.g. App.open("application-identifier"))或者先创建一个类的实例接着使用该实例的方法(e.g. 先myApp = App("application-identifier") ,之后 myApp.open())。(对于二者)没有一个优先级的用法推荐,唯一真正的不同之处在于,当使用实例方法时,可能会节省一些资源,因为使用类的方法可能会产生更多的中间对象。因此,如果您频繁地使用相同的应用或者窗口,使用实例方法也许更合适(注:transparent的意思为”透明的;显然的;坦率的;易懂的”,但译者认为此处理解为“合适的”最好)。

如何创建一个应用程序实例

基本的选择只是说,创建应用someApp = App("some-app-identifier")之后,你有你的应用实例,以后你可以一起使用实例的方法,而不必再次指定字符串。

通常,所有类的方法都会返回一个应用实例,您可以将其保存在一个变量中,以便之后在您的脚本中使用它。

在实例创建时,使用给定的文本扫描进程列表以查找可执行文件的名称。如果找到了,应用程序将被初始化为响应的信息(PID,可执行文件,主窗口最前面的窗口标题)。所以,你可以直接访问此应用实例,查看应用是否运行(isRunning()),是否有窗口(hasWindow()),获取主窗口的标题(getWindow())以及获取进程ID(PID)(getPID)。

阅读剩下更多

默认配图
返回顶部