TagUI基础功能?
执行流程?
TAGUI通过运行 流程文件 自动执行您的操作,流程文件扩展名是 .tag
。
您可以在CMD命令提示符中运行流程: 命令使用 格式:
tagui RPA.tag
TagUI 命令可以使用绝对路径展示 RPA.tag
tagui c:\tagui\samples\1_google.tag
You can also run flows on a fixed schedule.
生产独立文件,通过双击运行?
使用参数: -deploy
:
tagui RPA.tag -deploy
或者使缩写方式: -d
:
tagui RPA.tag -d
命令会创建快捷方式(RPA.cmd)以运行流程,查看源代码其实是.bat语句。快捷方式文件可以移动到桌面或其他任何地方。
如果你想增加更多参数,例如 -headless
(-h
),你可以这样写命令:
tagui RPA.tag -h -d
注意
原.tag文件路径被移动,相关的.cmd快捷文件会失效。
隐藏浏览器运行?
您可以不显示Web浏览器来运行Web流程,使用 -headless
参数。
tagui RPA.tag -headless
或使用简称: -h
:
tagui RPA.tag -h
这允许你在流程运行时正常使用你的电脑,但如果流程中使用可视自动化(例如OCR、图像识别等),则无法正常运行,因为流程需要读取并单击屏幕上的内容。
基础命令?
自动化RPA流程是由基础命令组成的,以下是一些常见命令。
全部的命令列表: steps reference.
click 鼠标左键单击?
点击命令,可以使用它来单击Web元素:
click Getting started
此命令单击WEB元素,点击定位可以用“ID”,“name”,“class”或“title”属性,(如何查找元素定位),这里有个使用 xpath 的例子:
XPath是一种强大的定位元素方式,我们很推荐使用它。例如:
click //a[@class="icon icon-home"]
您还可以单击屏幕上的某个坐标点:
click (500,300)
命令里的500和300是X-Y坐标。此命令点击距离屏幕左侧为500像素,距离屏幕顶部300像素的位置。可以在TagUI Live模式下使用 mouse_xy()
寻找XY坐标点(参考:helper function ),当然我们更推荐使用一些小工具更方便的知道XY坐标。
click还可以使用图像识别(Visual Automation)单击先前保存的图像所匹配的位置。下面这条命令会在屏幕范围寻找类似 button.png 的位置,然后单击它。注意:TagUI只识别桌面区域,浏览器区域不一定识别。
click button.png
当然,好的编程习惯,是把图片都放在 image 目录下:
click image/button.png
type 文本输入?
此命令可以在WEB内进行文本输入,some-input指元素定位,some-text指文本内容
type some-input as some-text
你可以用 [clear] 来清除元素文本,用 [enter] 来按回车:
type some-input as [clear]some-text[enter]
你也可以用图片进行输入定位, 类似 click 一样:
type some-input.png as some-text
read 读取元素,可读取文本 或某些属性值?
用 read 命令读取元素的文本,并且赋值给变量。
下面命令里的 “some-element” 是元素, “some-variable” 是变量:
read some-element to some-variable
read 还可以使用Visual Automation和OCR功能从屏幕区域读取文本。依赖于OCR的读取可能不完全准确。
此命令读取在点(300,400)和(500,550)之间形成的矩??形中的所有文本:
read (300,400)-(500,550) to some-variable
您还可以使用XPath读取Web元素的某些属性值。此命令从元素中读取ID属性:
read //some-element/@some-attribute to some-variable
assign 赋值?
对变量进行赋值:
This example uses the count()
helper function, counts the number of elements found with id/name/text with ‘row’ in them and assigns it to a variable row_count
for later use:
row_count = count('row')
元素定位?
我们有下面几种方式,告诉TagUI需要操作的目标元素在哪里。命令中可以使用多重元素定位方式,。让我们看看吧。
注意
DOM 和 XPath 方式只能用于 Chrome/Edge。To automate other browsers, use the Point/Region and Image identifiers.
DOM 元素属性定位?
click Getting started
DOM (Document Object Model) 方式用元素属性进行定位匹配,可以用 id, name, class attributes 或元素本身的文本内容定位元素。注意:这种方式可能因为同名造成定位不准确。
XPath 页面路径定位?
click //body/div[1]/nav/div/div[1]/a
XPath(XML Path Language)用树状结构来定位元素,表达方式可以理解成“某小区66号楼601室书房里桌子左边的第一个抽屉”。
这是针对 Web 元素的最准确的定位方式,我们推荐使用 XPath 进行元素定位描述。
Note
您可以使用 CSS selectors 代替XPath,但XPath是首选。
Point 坐标点定位?
click (200,500)
坐标原点是在屏幕左上角,横向称为X坐标,竖向称为Y坐标,Y坐标100表示从上往下100个像素的位置。本条命令会到距离屏幕左侧200像素,距离屏幕顶部500像素的位置 进行点击。这将使用TagUI的视觉自动化功能 visual automation。
Region 屏幕区域定位?
read (300,400)-(500,550) to some-variable
这与两点(300,400)和(500,550)之间形成的矩??形匹配。见点。这将使用TagUI的视觉自动化功能。这也使用视觉自动化 visual automation。
Image 图像定位?
click button.png
在全屏范围寻找类似图像文件 button.png
的位置进行点击。您首先需要截图保存为 button.png
, 这将使用TagUI的视觉自动化功能 visual automation。
click image/button.png
可以使用图片的绝对路径,同时好的编程习惯,是把图片都放到 image
目录下。并且使用容易理解的文件名,例如:button.png
。
Live mode 用于调试的Live模式?
在流程开发中,经常需要测试下一步的操作代码,建议使用Live Mode。在CMD/终端:
tagui live
启动 Live 模式后,您可以输入一行才买,执行一行,这样调试起来很方便。下面这张图展示了这个操作。进入 Live Mode 时,TagUI 会自动打开Chrome。
If 条件语句?
if 就是“如果”怎样就怎样 的条件逻辑语言,例如:如果出现“登录按钮”就进行点击。
代码举例: 如果 URL网址包含 “success”, 就点击 buttons1 和 buttons2
if url() contains "success"
click button1.png
click button2.png
url()
是一个 函数,用于获取当前网页的网址URL。注意,需要 if 执行的命令,需要在前面缩进空格(或Tab),这表示它们在 if块 中。如果满足条件,就执行 if块 中的命令。
注意
在TagUI v6.0 之前, 你需要用 {
和 }
来定义 if块.
从TagUI v6.0 开始, 大括号 {}
是可选的。
另一个常见的情况是判断某元素是否存在。在这里,“如果在等待超时后未出现某些元素,则访问此网页”。
if !exist('some-element')
https://tagui.readthedocs.io/
The ! negates the condition and comes from JavaScript, which TagUI code eventually translates to.
在下面的示例中,我们检查变量row_count,是否等于5:
if row_count equals to 5
some steps
以下是 大于more than 和 小于 less than 的命令方式:
if row_count more than 5
some steps
if row_count less than 5
some steps
For 循环?
你可以在同一流程中使用循环执行多次同样的流程。为了使用不同变量多次运行一个流程,标准方式是使用 datatables.
在此示例中,我们重复块内的流程总共20次:
for n from 1 to 20
some step to take
some other step
some more step
functions 函数?
函数功能是调用 JavaScript 函数,并且返回需要的值。
每个函数后跟小括号 ()
,小括号内可以填写函数的参数。查看 函数的完整列表。
csv_row()?
将一些变量转换为CSV文本以写入CSV文件。它将变量作为参数输入,包含在方括号内 []
(实际上是一个数组 array).
read name_element to name
read price_element to price
read details_element to details
write `csv_row([name, price, details])` to product_list.csv
clipboard() 剪贴板?
从剪贴板读取文本:
dclick pdf_document.png
wait 3 seconds
keyboard [ctrl]a
keyboard [ctrl]c
text_contents = clipboard()
对于大量文本内容输入,建议将文本先放到剪贴板,在用 Ctrl+V 粘贴,这比用 type 快很多:
long_text = "This is a very long text which takes a long time to type"
clipboard(long_text)
click text_input
keyboard [ctrl]v
keyboard [enter]
mouse_x(), mouse_y() 获得坐标点当前位置?
获取鼠标的x或y坐标。
在偏移点击目标时,需要先获得 x 或 y 坐标,以下代码示例表示,鼠标先移动到 element.png
,再获得偏移的 x 和 y ,然后单击元素右侧的200像素:
hover element.png
x = mouse_x() + 200
y = mouse_y()
click (`x`,`y`)
mouse_xy()?
在Live模式下,您可以使用 echo `mouse_xy()`
找到鼠标的坐标。注意,这里用的不是单引号 '
,而是键盘数字1左边按键的 `
echo `mouse_xy()`