Automagica小试

近期工作中接触RPA(Robotic Process Automation,即机器人流程自动化)方向的项目,在做技术预研中,接触了 UiBot 和 Automagica 这两款流程自动化的组件。其中 UiBot 是一款成熟的软件产品,安装其平台后,可以直接按用户的业务场景,通过绘制流程图+配置动作和参数的方式,定制自动化流程场景。当然它也提供了Python、C/C++、Lua、.Net等多种编程语言的扩展接口,支持更灵活的编程式开发。它入门门槛较低,直接通过点击就可以实现诸如浏览器数据抓取、文档批量操作等一般的业务场景,非工程人员也可以快速上手使用。这里我们对UiBot不做深入介绍,而来了解一下 Automagica  这个平台。

Automagica 是一个开源智能机器人流程自动化(SRPA,Smart Robotic Process Automation)平台,借助 Automagica 的python 函数库,可以通过简单程序脚本实现打开各种应用程序并对应用进行操作的功能,使自动化跨平台流程变得轻而易举。

  首先,Automagica 需要 Python 3.7 环境,官方支持 Windows 10 平台,Linux 和 Mac 目前官方还不支持。我这里使用的实验环境是Python 3.7.3,操作系统为 Win10系统。没有安装Python的请自行去官网下载(官网下载地址:https://www.python.org/downloads/release/python-373),请注意选择3.7+版本。背景交代如上。
 
  • 安装

方式一:通过 pip 工具安装

如果你已经安装过pip工具,可以使用pip命令直接进行automagica模块的下载安装(没有pip工具的,可以参考链接:https://www.cnblogs.com/vikezhu/p/6576595.html 进行安装):

pip install https://github.com/OakwoodAI/automagica/tarball/master

但是,我使用该方式安装时,因为网络原因一直超时报错。无奈,我只能另择他途。

方式二:安装window软件包

  官网下载地址:https://portal.automagica.com/ ,下载后得到一个名为【Automagica_Setup_XXXXX.exe】的安装包,80+MB。正常安装无须赘述,此处的安装路径为: C:\MySoftware\Automagica2.0 。
 
  • 开发

实验案例的业务场景是:自动打开Chrome浏览器,跳转到百度首页,然后检索关键字“automagica”。

这里业务场景较简单,我们直接使用记事本进行开发,代码如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
sys.path.append("C:\MySoftware\Automagica2.0\pkgs")
#引入automagica 模块
from automagica import *
#引入selenium 模块
from selenium import webdriver

#创建chrome浏览器实例,跳转到百度首页
#browser = Chrome()
browser = webdriver.Chrome()
browser.get(‘https://baidu.com/‘)
#获取搜索输入框,嵌入关键字automagica
search_input = browser.find_element_by_name(‘wd‘)
search_input.send_keys("automagica")
#获取检索按钮,点击
search_btn = browser.find_element_by_id(‘su‘)
search_btn.click()
  • 说明

## 第4行:sys.path.append("C:\MySoftware\Automagica2.0\pkgs")

  采用安装包的形式,automagica的库并不在 系统安装的python环境的默认扫描路径下,因此此行代码是为了载入Automagica平台所有模块所在的路径:Automagica安装目录下的pkgs路径下。

## 第6行:from automagica import * 

  引用automagica的核心库,鼠标、键盘、浏览器、系统应用、Office、PDF等操作函数,都依赖于该模块。

## 第8行:from selenium import webdriver 

  参考官方demo,并没有这行引用。但是我不加该包的导入直接运行脚本(同时要将12行改为11行),一直报错:selenium.common.exceptions.WebDriverException: Message: session not created: This version of ChromeDriver only supports Chrome version 78。
  很明显是浏览器驱动和浏览器版本不匹配。于是我确认一下我的Chrome浏览器版本:80.0.3987.116(64位),再查询了一下ChromeDriver 版本:80.0.3987.16 (在cmd中输入命令:chromedriver),不应该啊,难道python运行时使用的不是浏览器自带的ChromeDriver ...
  网上的一些解决方案都是:降低Chrome版本,使之与ChromeDriver 匹配。(后来我重装了一个78版本的Chrome,不加第8行导包的旧脚本实测,确实可以运行成功!)
  不过一开始我不太想重装浏览器,于是又查到一些单独使用 selenium 库的案例,相关脚本在创建浏览器实例时,使用的语法是:webdriver.Chrome()。试之,也可以成功运行!
  这里的疑问留待后续进一步理解automagica后再来解答吧。

## 第13~18行:browser 和页面元素的API

这几行都是浏览器的相关操作,包括输入字符、点击等动作。详情请参考官方参考文档:https://github.com/oakwoodai/automagica 中Activities部分。