TagUI 是一款免费、开源、跨平台的 RPA(Robotic Process Automation,机器人流程自动化)工具,它支持 Windows、Linux 和 macOS 操作系统[1]。它能够帮助用户轻松完成自动化桌面、Web、鼠标和键盘操作。
TagUI 国际版由 AI Singapore 赞助,并且正在筹备 TagUI 开源基金会[1]。TagUI 的开发始于 2016 年,由一位在伦敦发展的程序高手 Kensoh 负责,他是一位年薪百万的程序员[1]。TagUI 的一个显著特点是它没有使用 Selenium 或 Chromedriver,而是完全自主开发了 websocket 来控制 Chrome 浏览器,这是其技术底层的基础[1]。此外,TagUI 还支持通过 OCR(Optical Character Recognition,光学字符识别)和图像识别来控制桌面软件。
TagUI 专门为 RPA 而开发了自己的语言,并且支持使用中文进行编程,使得代码易于理解,即使没有编程经验的用户也能快速上手[1]。例如,以下是一个简单的中文代码示例,用于自动登录网站:
// 自动登录 xero.com 账号演示
https://login.xero.com/identity/user/login <-------------- 打开登录页面
type email as user@gmail.com <---------------------------- 输入Email
type password as 12345678 <---------------------------- 输入密码
click Log in <------------------------------------------ 点击 Login 按钮
TagUI 在 2022 年正式进入中国,由中国的互联网连续创业者报表哥引入,并创办了 TagUI 中文网 www.TagUI.com.cn[1]。他希望通过 TagUI 帮助中国程序员在 RPA 领域创业,并计划在未来 20 年内推动运行 100 万个 RPA 数字员工[1]。
为了实现这一目标,TagUI 中国团队计划采取以下步骤:
- 拥有一个开源免费的 RPA 软件,即 TagUI 进入中国。
- 迭代出一个适合中国小白用户使用的版本,并招募开发者。
- 提供大量程序员 RPA 创业转型培训,包括 RPA 开发和创业培训。
- 向社会提供月付制 RPA 服务,创业程序员专注于数字员工的开发和维护,提供稳定可靠的服务[1]。
用户可以通过以下链接下载 TagUI 中国版:
- TagUI 中国版: https://gitee.com/TagUIcn/tagui
- 中文版问答社区: https://gitee.com/organizations/TagUIcn/issues
- TagUI 国际版 Github: https://github.com/kelaberetiv/TagUI/
- 翻译来源: https://tagui.readthedocs.io/en/latest/index.html[1]
安装 TagUI 的步骤相对简单,无论是 Windows、macOS 还是 Linux,用户都可以根据提供的教程进行安装[1]。例如,Windows 安装教程包括下载 TagUI zip 压缩包、安装 OpenJDK、安装 Chrome 浏览器、设置环境变量 Path 以及通过 CMD 命令行模式运行 TagUI[1]。
TagUI 的基本概念包括选择器(Selectors),它支持 DOM 元素属性定位、XPath 页面路径定位、Point 坐标点定位和 Image 图像定位等多种定位方式[2]。
总的来说,TagUI 是一个功能强大且易于使用的 RPA 工具,它为自动化各种桌面和 Web 任务提供了一种简便的方法,特别适合希望快速上手 RPA 的用户。
TagUI 作为一款开源的 RPA 工具,其本地化部署的特点主要体现在以下几个方面:
-
跨平台支持:TagUI 支持 Windows、Linux 和 macOS 等多个操作系统,这意味着用户可以根据自己的操作系统需求进行本地部署,无需依赖特定的云服务或第三方平台。
-
开源免费:由于 TagUI 是开源的,用户可以自由地下载、使用和修改源代码,以适应自己的业务需求。这种自由度使得企业可以在本地环境中部署和定制化开发,而无需支付额外的授权费用。
-
自主控制:企业可以在自己的服务器或个人计算机上部署 TagUI,从而拥有对自动化流程的完全控制权。这包括对数据的安全性、访问权限和流程管理的控制。
-
定制化开发:TagUI 的开源特性允许企业根据自身的业务流程进行定制化开发,可以编写特定的脚本和功能来满足特定的自动化需求。
-
易于集成:TagUI 可以与现有的系统和应用程序集成,无论是桌面软件还是 Web 应用,都可以实现无缝集成,从而提高整体的自动化效率。
-
社区支持:作为一个开源项目,TagUI 拥有活跃的社区支持。用户可以从社区中获得帮助,包括安装指导、问题解答和最佳实践分享等。
-
无需外部依赖:TagUI 自主开发了控制 Chrome 浏览器的 websocket,不依赖于 Selenium 或 Chromedriver,这减少了外部依赖,使得部署更为简单和稳定。
-
本地数据存储:所有通过 TagUI 执行的自动化任务和产生的数据都可以存储在本地服务器或个人计算机上,便于管理和保护。
-
易于维护和升级:由于 TagUI 是本地部署,企业可以根据自己的节奏进行维护和升级,无需等待云服务提供商的更新。
-
安全性:本地化部署意味着数据和自动化流程都在企业内部网络中进行,这有助于提高数据的安全性和保密性。
通过这些特点,TagUI 为用户提供了一个灵活、可控且安全的本地化 RPA 解决方案,使得企业可以根据自己的需求和环境进行自动化流程的部署和管理。
TagUI 作为一个 RPA 工具,提供了一系列的命令和脚本语言,使得用户可以通过编写脚本来控制桌面和 Web 应用程序的自动化操作。以下是一些基本的 TagUI 命令和概念的介绍:
-
打开网页:使用
https://...
命令来打开一个网页。https://www.example.com
-
输入文本:使用
type
命令来模拟键盘输入。type email as user@example.com
-
点击操作:使用
click
命令来模拟鼠标点击。click Sign In
-
选择器:TagUI 使用选择器来定位页面元素,主要有以下几种:
- 属性选择器:通过元素的属性来定位,如
id
、name
、class
等。 - XPath 选择器:使用 XPath 语法来定位页面元素。
- 坐标点选择器:通过元素在屏幕上的坐标来定位。
- 图像识别选择器:通过图像识别技术来定位元素。
- 属性选择器:通过元素的属性来定位,如
-
读取和设置变量:使用
read
和set
命令来读取和设置变量。read variable_name from file set variable_name to value
-
循环和条件语句:使用
loop
和if
语句来实现循环和条件判断。loop 3 times // 执行某些操作 end loop if variable_name equals "value" // 条件为真时执行的操作 end if
-
等待:使用
wait
命令来等待某个操作完成或某个条件成立。wait 10 seconds
-
截图:使用
snapshot
命令来截取屏幕图像。snapshot file.png
-
执行系统命令:使用
system
命令来执行系统命令。system opennotepad.exe
-
错误处理:使用
try
和catch
语句来处理可能出现的错误。try // 尝试执行的操作 catch // 错误处理 end try
-
注释:使用
//
或/* ... */
来添加注释,解释脚本的功能或跳过某些行的执行。 -
退出:使用
exit
命令来结束脚本的执行。exit
当然,除了上述基本命令外,TagUI 还提供了一些更高级的命令和功能,以增强脚本的灵活性和功能。以下是一些额外的命令和功能:
-
拖动操作:使用
drag
命令来模拟鼠标拖动操作。drag element_id to x:y
-
滚动页面:使用
scroll
命令来滚动页面到指定位置。scroll page to x:y
-
窗口操作:使用
window
命令来操作浏览器窗口。window minimize window maximize
-
表单操作:使用
select
和unselect
命令来选择或取消选择表单中的选项。select checkbox_id unselect radio_button_id
-
等待元素:使用
wait
命令结合选择器,等待页面元素出现或消失。wait element appears id:element_id wait element disappears id:element_id
-
断言:使用
assert
命令来验证页面元素的状态或值。assert element text equals id:element_id "expected text"
-
获取元素信息:使用
get
命令来获取页面元素的信息,如文本、属性等。get text of id:element_id
-
执行JavaScript:使用
js
命令来执行页面上的 JavaScript 代码。js execute script document.querySelector("#element_id").click()
-
文件操作:TagUI 支持文件的读取和写入操作。
read data from file "filename.txt" write data to file "filename.txt"
-
网络请求:使用
http
命令来发送 HTTP 请求。http get "https://api.example.com/data" http post "https://api.example.com/submit" with data
-
定时任务:使用
schedule
命令来设置定时执行的任务。schedule run "script_name.tag" at 9:00 AM every day
-
日志记录:使用
log
命令来记录日志信息。log "This is a log message"
-
异常处理:使用
try
、catch
和finally
来处理脚本执行中的异常情况。try // 尝试执行的操作 catch // 异常处理 finally // 无论是否发生异常都会执行的操作 end try
-
使用外部库:TagUI 允许导入和使用外部库来扩展功能。
import library_name
-
环境变量:使用环境变量来存储和使用配置信息。
set ENV_VARIABLE to "value"
这些命令和功能提供了强大的自动化能力,使得 TagUI 不仅可以用于简单的自动化任务,还可以处理复杂的业务逻辑和交互。通过结合使用这些命令,用户可以创建出功能丰富、灵活高效的自动化脚本。
由于我目前只能提供文字回复,无法创建文档。但我可以继续在这里提供TagUI命令和功能的介绍。
继续介绍TagUI的一些高级功能和命令:
-
桌面自动化:除了Web自动化,TagUI也支持桌面应用的自动化操作,例如可以控制Windows操作系统的应用程序。
desktop open notepad
-
图像识别:TagUI可以利用图像识别技术来定位屏幕上的图像,这在某些自动化场景下非常有用,比如游戏中的自动化。
click on find image "button.png"
-
自定义函数:用户可以定义自己的函数,以复用代码和逻辑,使脚本更加模块化和清晰。
function login website // 登录网站的代码 end function call login website
-
模拟按键操作:可以模拟键盘上的按键操作,包括特殊键如Ctrl、Alt等。
press key "Ctrl+C" // 模拟复制操作
-
模拟鼠标移动:可以模拟鼠标移动到特定位置。
mouse move to x:y
-
模拟鼠标滚轮:可以模拟鼠标滚轮的滚动。
mouse scroll up 3 lines
-
屏幕捕获:可以捕获屏幕的特定区域或整个屏幕。
capture screen "screen.png"
-
元素属性获取:可以获取页面元素的属性,如href、src、value等。
get attribute "href" of id:link_id
-
元素样式获取:可以获取页面元素的CSS样式。
get style "color" of id:element_id
-
元素尺寸和位置获取:可以获取页面元素的尺寸和位置信息。
get width of id:element_id get height of id:element_id get x position of id:element_id get y position of id:element_id
-
元素可见性和存在性检查:可以检查页面元素是否可见或存在。
assert element exists id:element_id assert element visible id:element_id
-
元素文本获取和断言:可以获取页面元素的文本,并进行断言检查。
get text of id:element_id assert text of id:element_id equals "expected text"
-
元素计数:可以统计页面上匹配特定选择器的元素数量。
count elements matching css:.element_class
-
元素列表获取:可以获取页面上所有匹配特定选择器的元素列表。
get list of elements matching css:.element_class
-
执行浏览器命令:可以执行浏览器的前进、后退等命令。
browser go back browser go forward
-
浏览器调试:可以开启浏览器的调试模式,方便开发者调试脚本。
browser debug on
-
浏览器配置:可以配置浏览器的一些选项,如无头模式、窗口大小等。
set headless mode on set window size to 1920x1080
这些命令和功能展示了TagUI作为一个RPA工具的强大能力,它不仅可以处理网页自动化,还可以处理桌面应用、图像识别、文件操作、网络请求等多种自动化任务。通过这些命令,用户可以构建复杂的自动化脚本,以满足各种业务需求。
TagUI 的桌面自动化功能允许用户编写脚本来控制和自动化桌面应用程序的操作,这使得它不仅限于网页自动化,还能够处理传统的桌面软件。以下是一些桌面自动化相关的命令和概念:
-
打开桌面应用程序:使用
desktop open
命令来启动桌面应用程序。desktop open notepad
-
关闭桌面应用程序:使用
desktop close
命令来关闭桌面应用程序。desktop close notepad
-
模拟键盘输入:使用
type
命令在桌面应用程序中输入文本。type "Hello, World!" in notepad
-
模拟鼠标点击:使用
click
命令在桌面应用程序中模拟鼠标点击。click 100,200 in notepad // 在Notepad中坐标(100,200)处点击
-
模拟鼠标右键点击:使用
right click
命令模拟鼠标右键点击。right click 100,200 in notepad
-
模拟鼠标双击:使用
double click
命令模拟鼠标双击。double click 100,200 in notepad
-
模拟鼠标移动:使用
move mouse
命令移动鼠标到桌面应用程序中的特定位置。move mouse to 100,200 in notepad
-
模拟鼠标拖动:使用
drag and drop
命令在桌面应用程序中拖动元素到另一个位置。drag and drop 100,200 to 300,400 in notepad
-
模拟键盘按键操作:使用
press key
或press keys
命令模拟键盘按键操作。press key "Enter" in notepad press keys "Ctrl+V" in notepad // 模拟Ctrl+V粘贴操作
-
获取桌面应用程序窗口信息:可以使用
get windows
命令获取当前打开的应用程序窗口列表。get windows
-
激活特定窗口:使用
focus window
命令激活特定的桌面应用程序窗口。focus window "Untitled - Notepad"
-
窗口截图:使用
snapshot
命令对桌面应用程序的窗口进行截图。snapshot "notepad_screenshot.png" in notepad
-
窗口最小化、最大化和还原:使用
window minimize
、window maximize
和window restore
命令来控制窗口的状态。window minimize in notepad window maximize in notepad window restore in notepad
-
读取和设置剪贴板内容:可以使用
read clipboard
和set clipboard
命令来操作剪贴板。read clipboard set clipboard to "Copied text from application"
-
等待桌面应用程序响应:使用
wait
命令等待桌面应用程序完成特定操作或达到某个状态。wait 5 seconds // 等待5秒
-
执行系统命令:使用
system
命令执行系统级别的命令,比如打开文件浏览器。system "explorer path\to\directory"
-
桌面元素识别:TagUI 可以结合图像识别技术来识别和操作桌面元素,尤其是在没有明确元素定位信息时。
通过这些命令,用户可以创建脚本来自动化桌面应用程序中的重复性任务,比如数据录入、文件操作、批量处理等。桌面自动化大大扩展了 RPA 工具的应用范围,使其不仅限于网页,也适用于传统的桌面软件环境。