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快捷文件会失效。

运行云端.tag?

你可以把.tag文件放在服务器,并用下面命令运行:下面的命令COPY到CMD里可以直接运行哦~

tagui http://www.TagUI.com.cn/baidu.tag

隐藏浏览器运行?

您可以不显示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

WEB访问?

直接输入网址,TagUI就会在Chrome里打开,下面这句就可以访问 上海数员RPA的官方主页:

https://www.R-P-A.com

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()`