Reference¶
Use this section to look up information on steps, helper functions and run options you can use. You can explore using the navigation headers.
Steps¶
The steps you can use in TagUI are listed here.
Mouse and Keyboard¶
click¶
click [DOM/XPath/Point/Image]
Examples
click Main concepts
click //nav/div/div[2]/ul/li[4]/ul/li[1]/a
click (500,200)
click button.png
type¶
type [DOM/XPath/Point/Image] as [text to type]
Examples
type search-term as John Wick
type //input[@name="search"] as John Wick
type (500,200) as John Wick
type input_field.png as John Wick
type search-term as [clear]John Wick[enter]
type //input[@name="search"] as [clear]John Wick[enter]
type (500,200) as [clear]John Wick[enter]
type input_field.png as [clear]John Wick[enter]
keyboard¶
Enters keystrokes directly.
keyboard [keys]
You can use the following special keys:
[clear]
[shift] [ctrl] [alt] [cmd] [meta] [enter]
[win] [space] [tab] [esc] [backspace] [delete]
[up] [down] [left] [right] [pageup] [pagedown]
[home] [end] [insert] [f1] .. [f15]
[printscreen] [scrolllock] [pause] [capslock] [numlock]
Examples
keyboard [win]run[enter]
keyboard [printscreen]
keyboard [ctrl]c
keyboard [tab][tab][tab][enter]
keyboard [cmd][space]
keyboard safari[enter]
keyboard [cmd]c
Web¶
select¶
select [DOM/XPath of select input element] as [option value]
Examples
select variant as blue
table¶
table [XPath] to [filename.csv]
Examples
table //table[1] to exchange-rates.csv
popup¶
Modifies the next steps to be run in a new tab.
popup [unique part of new tab's URL]
{
[steps]
}
Examples
popup confirm
{
click Confirm
}
frame¶
Modifies the next steps to use the DOM or XPath in a frame or subframe.
frame [frame name]
{
[steps]
}
frame [frame name] | [subframe name]
{
[steps]
}
Examples
frame navigation
{
click Products
}
frame main | register
{
click Register
}
download¶
download [file url] to [filename]
Examples
download https://github.com/kelaberetiv/TagUI/releases/download/v5.11.0/TagUI_Windows.zip to tagui.zip
upload¶
upload [DOM/XPath of upload input element] as [filename]
Examples
upload //input[@name="attach"] as report.csv
api¶
Call a web API and save the response to the variable api_result
.
api https://some-api-url
Examples
api https://api.github.com/repos/kelaberetiv/TagUI/releases
js obj = JSON.parse(api_result)
js author = obj[0].author.login
Using Variables¶
read¶
read [DOM/XPath/Region/Image] to [variable]
When you provide a Region or Image identifier, TagUI uses OCR (Optical Character Recognition) to read the characters from the screen.
Examples
read //p[@id="address"] to address
read //p[@id="address"]/@class to address-class
read (500,200)-(600,400) to id-number
read frame.png to email
assign¶
Saves text to a variable.
[variable] = [value]
Examples
count = 5
username = "johncleese"
fullname = firstname + lastname
File Saving/Loading¶
write¶
Saves a new line of text to an existing file.
write [text] to [filename]
write [`variable`] to [filename]
Examples
write firstname,lastname to names.csv
write `fullreport` to report.txt
dump¶
Saves text to a new file.
dump [text] to [filename]
dump [`variable`] to [filename]
See dump for examples.
load¶
Loads file content to a variable.
load [filename] to [variable]
Examples
load report.txt to report
Showing output¶
echo¶
Shows some output on the command line.
echo [text]
echo [`variable`]
Examples
echo Flow has started
echo The user is `username`
Custom code¶
js¶
Runs JavaScript code explicitly. TagUI has direct access to the JavaScript variables.
js [JavaScript statement]
js begin
[JavaScript statements]
js end
Examples
js obj = JSON.parse(api_result)
dump `obj` to result.json
js begin
obj = JSON.parse(api_result)
randomInteger = Math.floor(Math.random() * Math.floor(5)) + 1
js end
dump `obj` to result.json
py¶
Runs Python code and saves the stdout to the variable py_result
as a string.
py [Python statement]
py begin
[Python statements]
py end
Examples
py result = 2 + 3
py print(result)
echo `py_result`
py begin
import random
random_integer = random.randint(1,6)
print(random_integer)
py end
echo `py_result`
run¶
Runs a command in Command Prompt or Terminal and saves the stdout to the variable run_result
.
run [shell command]
Examples
run mkdir new_directory
vision¶
Runs Sikuli code.
vision [Sikuli statement]
vision begin
[Sikuli statements]
vision end
Examples
vision click("button1.png")
dom¶
Runs code in the browser dom and saves the stdout to the variable dom_result
.
dom [JavaScript statement to run in the DOM]
dom begin
[JavaScript statements to run in the DOM]
dom end
Examples
dom intro = document.getElementById("intro")
r¶
Runs R statements and saves the stdout to the variable r_result
.
r [R statement]
r begin
[R statements]
r end
Miscellaneous¶
wait¶
Explicitly wait for some time.
wait [seconds to wait]
wait [seconds to wait] s
wait [seconds to wait] seconds
Examples
wait 5.5
wait 10 s
wait 20 seconds
timeout¶
Changes the auto-wait timeout when waiting for web elements to appear.
timeout [seconds to wait before timeout]
Examples
timeout 300
ask¶
Prompts user for input and saves the input as the variable ask_result
.
ask [prompt]
Examples
ask What is the date of the receipt? (in DD-MM-YYYY)
type search as `ask_result`
live¶
Wait for user confirmation before continuing. The user must enter “done” before the flow continues.
live
tagui¶
Runs another TagUI flow. Checks the flow’s folder.
tagui [flow file]
tagui [folder/flow file]
Examples
tagui update-forex.tag
tagui flows/update-forex.tag
Run options¶
You can use the below options when running tagui
.
For example, the command below runs my_flow.tag
without showing the web browser, while storing the flow run result in tagui_report.csv
.
tagui my_flow.tag headless report
headless¶
Runs the flow without a visible browser (does not work for visual automation).
report¶
Tracks flow run result in tagui/src/tagui_report.csv
and saves html logs of flows.
my_datatable.csv¶
Uses the specified csv file as the datatable. See datatables.
speed¶
Runs a datatable flow, skipping the default 3s delay and restarting of Chrome between datatable iterations.
Helper functions¶
csv_row()¶
Formats an array for writing to csv file.
Examples
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
count()¶
Gets the number of elements matching the identifier specified. Note that the identifier needs to be in single quotes ''
.
Examples
rows = count('table-rows')
clipboard()¶
Puts text onto the clipboard, or gets the clipboard text (if no input is given).
Examples
clipboard('some text')
keyboard [ctrl]v
keyboard [ctrl]c
contents = clipboard()
title()¶
Gets the title of the current web page.
Examples
if title() contains 'Confirmation'
{
click button1
}
text()¶
Gets all text content of the current web page.
Examples
if text() contains 'success'
{
click button1
}
timer()¶
Gets the time elapsed in seconds in between each running of this function.
Examples
timer()
click button1
click button2
click button3
echo timer()
exist()¶
true
or false
depending on whether it exists or not.exist('[DOM/XPath/Image]')
Examples
if exist('//table')
{
click button1
}
present()¶
true
or false
.Examples
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
mouse_xy()¶
Examples
echo mouse_xy()
mouse_x()¶
Gets the x coordinate of the current mouse position as a number, eg 200.
Examples
hover element.png
x = mouse_x() + 200
y = mouse_y()
click (`x`,`y`)
mouse_y()¶
Gets the y coordinate of the current mouse position as a number, eg 200.
Examples
hover element.png
x = mouse_x() + 200
y = mouse_y()
click (`x`,`y`)