关于类UIPath、UIBot的RPA软件的开发建议

日前我正在做RPA软件的开发,坑踏过不少,UIPath、UIBot也研究过、逆向过。

建议如下:

1、开发平台选择很重要 ! 

为什么这么说呢,我当前的开发,是基于java的,桌面端自动化是基于c/c++的,浏览器自动化是基于Web自动化测试工具的。

开发过程很痛苦,迈过无数的坑:java通信迈过了JNI、JNA、JCOM、JACOB;桌面自动化迈过了MS UIA;浏览器自动化……别说了,三个浏览器兼容性就够喝一壶的;SAP自动化又把坑基本重走了一边。

 

建议是:

       由于桌面自动化、IE自动化、SAP自动化都可以在C#环境下超级方便的实现,所以推荐使用C#实现底层的自动化,可以整体都使用C#开发,毕竟客户端也是C#的强项;也可以单用C#提供底层实现的服务。

 

2、VisualSelector(鼠标选择器)的实现。

通过使用UIPath,我们发现他的VisualSelector,极其流畅、丝滑,并且支持F2暂停再选。

那么我踏过的坑呢:

       1)MouseHook:hookProc中任何一点复杂处理都会严重影响鼠标流畅度,体验极差

       2)setCapture:体验极其流畅,但是无法实现暂停后再选(MouseDown的限制)。

       3)Timer:体验一般,但是没有上两个问题严重。

所以最终,我采用了三法混用来实现这个功能,虽然远不及UIPath,但是对于初次涉猎RPA开发甚至初次做C++/Win开发的我来说,暂时已经可以了。

 

3、浏览器自动化的实现

我可以肯定的说,UIPath的浏览器自动化:IE使用mshtml实现,其他基本都是使用浏览器插件来实现(叫啥来着?NPAPI?)。

我踏过的坑呢?浏览器自动化工具实现。简直不要太难受 ,效率、体验都很差,而且自动化操作的浏览器只能通过webdriver打开,自己点开的并不能用。但是!能实现自动化。我们说不求一步登天,但求迈出这一步。

 

4、SAP自动化的实现

SAP GUI的自动化不同于桌面自动化、浏览器自动化,它提供两个COM操作库来实现。基本来说,三个自动化场景,这个是相对简单的,但是不得不吐槽:但为SAP提供一个自动化实现 总感觉很亏

 

 

总结:

RPA目前是世界的新风口,全球资本疯狂入场,国外巨头垄断,国内刚刚起步,这块蛋糕很大,但是做好,做精是每个RPA从业者的Dream

 

你可能感兴趣的:(RPA)