RPA最核心的功能自然是模拟人手工在电脑上操作的具体动作,包括鼠标和键盘操作,当然由于RPA本身是软件,有天然的优势,可以比人操作的更快,并可以完成一些人手无法实现的操作(比如只keydown不keyup,鼠标上下滚轮--即使该电脑的鼠标没有滚轮,鼠标光标不动情况下的按钮点击,等等)。
模拟的技术有如下几类:
利用WIN32 API基于屏幕坐标点进行鼠标的移动点击拖放以及键盘操作
利用WIN32 API获取句柄从而在鼠标光标不动情况下直接操作windows OS上运行的任意窗体及其内的控件
利用IE DOM类库在鼠标光标不动情况下直接操作IE浏览器所打开的网页中的HTML元素
利用图像识别和OCR技术基于屏幕区域截图比对来获取屏幕坐标位置并用WIN32 API触发鼠标键盘操作
当然,多数主流产品都会组合以上几种技术,开发人员可以根据具体案例选择一种或几种实现RPA。下一步技术的发展无疑是朝着智能化方向进步,通过嵌入机器学习引擎来自适应被操作对象的版本迭代造成的细微变化(比如同样的按钮改了部分文字、移动了位置等等),而不至于让RPA维护人员疲于奔命的不断调试应付,尤其是在如今DevOps大面积采用情况下越来越快速的软件产品升级。
而笔者认为智能化很可能会更多的借助第四种技术,因为图像识别场景天然的适宜机器学习。MIT的一些师生开发的小工具Sikuli就是这种技术的生动写照!
领取专属 10元无门槛券
私享最新 技术干货