Uipath初步使用

Uipath初步使用

玩了一下Uipath,感觉这已经是老财入门自动化最低的要求了

之前一直是用通用编程语言来处理数据,包括Excel和Web应用。前两天接到了集团一封RPA培训邮件,内容是简单培训Uipath这个用来开发RPA的软件。

这瞬间点燃了我的兴趣,RPA我之前一直有了解,但没深入的涉及开发,因为RPA一是不稳定,二是经常用来获取一些基础数据,而非做大规模的处理,然而在视觉元素的处理上,比通用编程语言方便很多,如果也学会RPA开发的话,搭配现在我的开发技能就如虎添翼了。不多说了,搞起。

Uipath的安装

注册账号

安装需要先去Uipath的云平台注册一个账号,我用自己的Gmail直接登录了,之后再访问这个页面,就会进入登录后的界面,这个界面暂时还没有什么用途,等之后再回来。

下载社区版Uipath

简单了解了一下,机器人如果想比较方便的使用,一般是要发布到云平台的,而社区版想要正常使用,还必须时刻更新到最新版,因此不像JetBrains系列的IDE可以用破解版,只好先下载社区版了。
在刚才的登录后界面的右侧点击下载桌面版Studio就会下载叫做UiPathStudioCommunity.msi的社区版安装包,之后安装即可。

Uipath程序包介绍

安装完之后,开始菜单 - Uipath 底下有三个程序,分别是:

  1. Uipath Assistant
  2. Uipath Diagonostic Tool
  3. Uipath Studio
    第二个顾名思义就是诊断工具,用不到。核心是第一个和第三个东西。

Uipath Studio

习惯编程的朋友都知道studio这个词代表的意思,这里实际上就是Uipath的IDE,用于编写一个RPA的实际代码(或者叫一个包)。在Studio中可以执行编写的代码,进行调试和正式发布。

Uipath Assistant

这个可以理解为专门用于运行RPA的平台。在Studio中编写好的程序,可以将其发布为一个包(一个机器人),在Assistant可以单纯的执行这个包,配置执行的方式等等。

云平台Orchestrator

回到刚才的云平台已登录界面,左侧一排图标从上面开始的第二个,就是Orchestrator。这个东西不在本地,相当于一个集中管理所有程序的地方。

在Studio中编写好的一个包,可以发布到本地,形成一个unpkg文件,也可以发布到Orchestrator,让Assistant连接到Orchestrator,就可以把发布的包下载到本地然后执行。

如果用Python来类比的话:
Uipath Studio就是Pycharm,用来编写.py文件
Assistant 就类似python.exe文件,专门用来跑写好的.py文件
Orchestrator 就相当于Pycharm里去帮你下载第三方库的管理器PIP,只不过是你自己曾经编写过的所有程序包。

所以RPA天天说机器人机器人,只是一个称呼而已,其实就是一个自动化脚本的执行程序,只不过相比通用编程语音,这种自动化脚本更贴近于人的实际操作,所以叫做机器人。甚至可以将其理解为一个强化版的按键精灵。

初步使用Uipath

准备用Uipath结合官方文档的一些演示,来写一个从柚子小站首页获取最新文章的链接,标题等数据的功能。

项目

和很多开发的IDE一样,进去也是要先创建项目。对于我们想要完成的一系列自动化操作来说,Uipath里管这个叫做序列(Sequence)。一个Sequence就基本上对应通用编程语言所谓的一个项目。

在首页就可以创建一个项目。这里我是找了一个网页抓取的项目跟着来做了一次,体验了一下最初级的RPA功能。

活动

创建了一个项目之后,中间的就是可视化的操作序列Main Sequence(当然目前还是空白)。接下来就是要一步一步来创建具体怎么做的清单。一次操作,就称之为一个活动,这个活动可以是打开一个页面,点击鼠标,输入文字,选择一块内容进行复制等等等等。

活动在左侧的活动、项目、代码片段这三个共用的框里。其中的已安装就是直接在本地可用的,可用就是需要其他方式安装的,这里暂时用不到,对于模拟普通的操作,目前的已安装已经都够用了。

要实现的步骤

先要计划好自动化的步骤:

  1. 打开conyli.cc网站的首页
  2. 获取首页展示的所有文章的标题、URL、内容简介、时间
  3. 将上述内容写入到一个Excel文件中

具体实现

实现的步骤,就是模拟人工的操作,来一步一步的完成。

打开浏览器

需要在第一个活动的地方,点击那个+号,就会自动跳到上边的搜索框,也可以从左边活动 - 已安装 - 用户界面自动化 - 应用程序 - 使用应用程序/浏览器 把这个功能拖到中间的活动处来。

之后就可以指定浏览器和网站,这里需要提前用浏览器打开conyli.cc首页,然后选择浏览器及这个页面,就可以生成一个活动,会对窗口有一个简单的缩略图,下边浏览器URL中写着:https://conyli.cc

这就完成了第一个步骤,打开柚子小站的首页

批量抓取数据

由于我们的页面是动态生成的,展示前10个文章的数据,有过WEB开发经验的朋友会知道,很有可能着10个东西其实是用相同的模板生成的,没错,Uipath也是利用了这个功能,可以在相近结构的HTML元素中获取对应的信息。

此时执行里还是空的,点击Studio程序上边菜单的"表格数据提取”,会跳转到浏览器窗口。

先点击任意一篇文章的标题,会弹出让你选择TEXT还是URL的窗口,选择TEXT,然后在Uipath的窗口中选择“确认”,会让你填写此类数据的名称,填写标题,此时上下滚动页面可以发现,所有标题都已经被框选选中。

然后点击“选择要提取的数据”,依然还是点击标题,但这次选择URL,也会生成一行新的提示,选择“确认”,再重复操作,选择摘要,确认,然后点击时间,确认。

此时四行都有了,而且前边的数据都标记着10,说明都取到了类似的10个数据,确定然后返回,可以看到活动中新添加了一个提取表格数据,如图所示:
微信图片_20240830142049.png
这里默认提取到了一个叫做ExtractDataTable的变量中,这个变量可以理解为保存了二维的数据,接下来就是把这个变量写入到Excel文件中。

写入Excel文件

添加活动,在上边搜索框里输入workbook,找到“写入范围Workbook”,双击添加到执行框中。

这里有三个变量,第一个是工作簿的名称,可以填写带路径的,也可以不带路径,注意其中的变量都是VB风格,如果是字符串一定要两边加上英文的双引号。这里点击旁边的“在表达式编辑器中打开”,然后输入"D:\Downloads\柚子小站.xlsx"

第二个是工作表名称,这个可以随便起,或者输入Excel文件默认的"Sheet1"也可以。

第三个是数据来源,在上一步中获取的数据现在保存在ExtractDataTable这个变量中,这里就要填入这个变量的名称,要通过右侧小按钮 - 使用变量 - 变量 - ExtractDataTable 来确定选中,如下图所示:
微信图片_20240830143938.png
到这里逻辑就编写完了。

运行自动化程序

点击上部菜单的三角运行符号,就可以看到程序运行,点开下部的输出可以看到程序运行的结果:

已为以下文件启动调试: Main
柚子小站首页文章 执行开始
审核: 使用网页应用程序。浏览器: Chrome URL: https://conyli.cc/
审核: 提取数据。来源: <html app='chrome.exe' title='首页-柚子小站' />
柚子小站首页文章 执行结束 in: 00:00:02

然后就可以在刚才指定的路径之下找到Excel文件,如下图所示:
excelsample1.png
如果有问题,还可以在选中每个步骤的时候打断点,方便来调试哪里出了问题。

发布

运行没有问题之后,可以选择顶部菜单最右边的发布(不要发布测试用例)。弹出的对话框中很多都可以自行输入,但 发布选项 - 发布至 这里选择Orhchestrator个人工作区订阅源,之后按右下角的发布,等待发布完成即可。

此时就是把这一段程序,发布到了云端的Orhchestrator中,在云平台登录界面,进入Orhchestrator,就能看到自己发布的程序了:
orche1.png

通过Assistant运行程序

此时打开开始菜单中的 Uipath Assistant,正常情况下是跟着你的社区版已经自动登录好了,在自动化里就可以看到刚才已经发布到云平台的程序柚子小站首页文章
Assistant.png
点击可以下载,然后运行,正常的话显示success就成功了。
这样就完成了编写-程序发布-执行的一个完整过程。

相关资源

我找到了一个不错的教学视频资源:UiPath RPA开发入门实战教程

我感觉Uipath对于从未接触过程序开发的财务人员来说,还算是比较容易的,只要简单的熟悉变量的概念,就可以操作,而暂时不用去管中间的细节。当然,Uipath的进一步开发,比如复杂的逻辑,等待页面元素变化等等,还是要会编程的。

另外Uipath很显然也是基于Windows开发的,所以其内置的编程语言支持仅仅只有VB和C#,其他语言只能靠导入,而且很难使用,这是个比较遗憾的点。

总的来说,RPA还是比较适合模拟人的操作,像OA操作,银行对账单下载这些工作用RPA比较容易,但对于重型的程序处理,Uipath并不适合在其中像通用编程语言一样编写集中并复杂的逻辑,还受制于很多其他程序状态(元素改变,弹窗)的影响,因此作为一个获取原始数据的功能使用比较好。

LICENSED UNDER CC BY-NC-SA 4.0
Comment