Scenario

#### Help

This page contains information about most used actions and examples of their usage. Complete list of actions can be found on following panel.
You can also check wiki for more information.

Loops helps to repeat actions.

X=Variables are used to store data.

Conditions helps to execute different actions depending on condition.

Browser interacting with browser.

Labels move execution point to arbitrary place.

Functions containers, which holds action list.

Error handling react on error during execution.

Parsing data csv, html, xml parsing.

Output data Save data to log or file.

Files Reading or writing files, distribute data across threads.

Multithreading Make your application multithreaded.

#### Loops

Loops helps to repeat defined list of actions specified number of times or until certain condition will be met.

Frequently used actions:

For Repeat actions specified number of times.

While Repeat actions while specified condition.

Foreach Repeat actions for each element in list.

Usage examples (some examples requires additional editing) :

●Repeat 10 times

●Repeat infinite number of times

●Repeat until certain condition

●Repeat for each element in the list

●Repeat for each element in resource

●Repeat for each value in user defined list

#### Variables

Variables are used to store data between action execution. Each variable has a name and a data, which it points to. For example, variable EMAIL may point to string aaa@gmail.com and variable PASS may point string pass123. You can reference this data by filling variable name with double square brackets into any action and any parameters. For example, to input your email on site use following notation [[EMAIL]]

Frequently used actions:

Set Variable Create or update variable.

Increase Variable Increase or decrease numeric variable.

Set Global Variable Global variables are available during whole script execution in every thread.

Increase Global Variable Increase or decrease numeric global variable.

Template Create multiline variable, expand spintax.

#### Conditions

Conditions helps to execute actions depending if specified condition is true. For example, if certain text is present on page, save it to log, otherwise fail thread.

Frequently used actions:

If executes different actions depending on condition.

Usage examples (some examples requires additional editing) :

●Execute if variable is true

●Execute if variable equals to specified value

●Execute if variable is greater than

●Execute always

●Never execute

●Execute if variable contains

#### Browser

In order to interact with browser, you need to use actions from 'Browser'. module
A good way to start would be to use 'Load' action, to load some url.
To interact with browser elements, you need to select it and then choose what action you want to perform from a context menu, [[screenshot]].
There is also an alternative way to control browser, click on. following button to get a direct control on browser. You can also select to record a script, which means that all your mouse click and key inputs will be converted into script, which can be repeated later.

Frequently used actions:

Load Load URL.

Proxy Set browser proxy.

Manual browser control Control browser directly.

Create or switch to regular profile Set folder, which will contain browser cookie, localStorage and other objects. Can be used to autologin.

Usage examples (some examples requires additional editing) :

●Load page and get its content

●Load page and make xpath query.

#### Labels

Labels helps to transfer execution point between two arbitrary places inside script.
Easiest way to move execution point is just to drag and drop label handler, like [[this]].
You can also use labels by running 'Set label' and 'Move to label' actions.

Frequently used actions:

Set label Set label so execution point may be transfered to that label later.

Move to label Move execution point to label previously set with "Set label" action.

Usage examples (some examples requires additional editing) :

●Create cycle using labels

#### Functions

Functions are containers, which holds action list. It helps to group several actions which does same task. For example, there can be function which logins to account, function that checks account balance, etc. It makes your code clear and well organized.
In order to create or call functions use Function manager

Frequently used actions:

Call Function Execute function and proceed with next action.

Call function in several threads Execute function specified number of times with specified number of threads.

#### Error handling

By default, if any error will happen during any action execution, thread will restart.
This behavior is acceptable most of times. For example, if your proxy is not working, it is good idea to restart thread and take a new proxy. However, if you want to process error differently than restarting thread, you can use 'Ignore Errors' action. This action allows to detect whenever error happens and do whatever you like by executing arbitrary code. For example, you can write report and restart thread only after that, or move to label and repeat action and don't restart thread at all.
In order to ignore errors during execution of specific action, use following button.

Frequently used actions:

Ignore Errors Ignore errors and continue script execution further.

Usage examples (some examples requires additional editing) :

●Load page until success, ignore error during page load.

#### Parsing data

In order to parse data from web page, first load url with 'Load' action, next click on element that you want to extract and select 'Get element text' action, [[like this]].
You can also save page source into variable('Page Html' action) and use xpath or regular expression module in order to extract data.
Regular expressions or xpath can be also used to extract data from any other source if text is stored in the variable. For example, you can get page with http client('Get' action), save its source with 'Content' action and then use regular expressions.
If you want to split line from file, which contains several values, for example, email:password, then you need to use 'Parse Line' action.

Frequently used actions:

Parse Line Split line, which contains several values, for example, email:password into variables.

Page Html Save page html to variable.

Xpath Get Xml Execute xpath and find html.

Xpath Get Text Execute xpath and find text.

First match Execute regular expression, get first match.

Usage examples (some examples requires additional editing) :

●Extract page title with regular expression

●Extract all links on page using xpath

●Iterate all links on page

●Split csv line into variables

●Split multiline data into list with lines

#### Output data

Easiest way to output message is to use 'Log' action, it will write data into special log panel and into file. 'Log' action is more suitable for writing messages about script execution.
To save raw data without timestamps use 'Result' action.
Finally, you can write to any file with 'Write File' action. It accepts resource as input parameter, so you can write into user selected file.

Frequently used actions:

Log Write message to log

Result Output data to results tab

Write File Write data to file with specified path

Usage examples (some examples requires additional editing) :

●Write a test message

●Write line to user selected file

#### Multithreading

By default your script will run in single thread and will stop after first execution.
In order to make your application multithreaded, you need to set thread number on following panel, you also need to stop "Record mode" and start script in "Run mode".
Resource system may help you to distribute data across multiple thread. You can create new resource by clicking on following button. For example, if you have file with proxy list, create resource with name 'Proxy' and then use it in any parameter in any action, like this. With this approach new proxy will be taken for each thread run.
Resource system also creates user interface, this means, that on each script run you or your users will be prompted to input filename which contains proxies.

#### Files

Interacting with file can be performed in two ways. First on is very straightforward, use 'Filesystem' module and 'Read File' or 'Write File' actions in order to read or write file directly.
First approach is very easy to use but has one disadvantage, it is hard to synchronize data across multiple threads.
Resource system, the second way, may help you to do that. You can create new resource by clicking on following button. For example, if you have file with proxy list, create resource with name 'Proxy' and then use it in any parameter in any action, like this. With this approach new proxy will be taken for each thread run.
In order to repeat your application for each resource value, you need to set 'Run Type' to 'Repeat' on following panel, you also need to stop "Record mode" and start script in "Run mode".
Resource system also creates user interface, this means, that on each script run you or your users will be prompted to input filename which contains proxies.

Frequently used actions:

Read File Read data from file with specified path

Write File Write data to file with specified path

Read File To List Read data from file to list

Write List To File Write data from list to file

Resource To List Read data from resource(user selected file) to list

Usage examples (some examples requires additional editing) :

●Write line to user selected file

#### Run Type

Run type determines how many time script will run. This setting doesn't affect "Record mode", if you want to repeat script execution, you need to stop "Record mode" and start script in "Run mode".

One time
Script will be executed once and then will instantly finish.

Repeat
Script will be constantly repeated infinitely or until data for any resource will be exhausted, or until "End Script" will be executed. Use this mode if you want to execute script until some condition will be met, for example, if the lines in the file run out.

Custom
Each script launch has a successful or failure result, for example, successful run could be when account was registered and failure may be because not working proxy. With this type you can limit successful and fail execution number. For example, by setting success number to 100 and fail number to 10, you are telling engine to stop execution after 100 successful account registration or after 10 failures during registration.

#### Edit Task

Id:
Color:
Don't run when recording

#### Add/Edit Function

#### Add/Edit Parameter

Name: Name is for identifying parameter, it is used in "Get Function Parameter" action to get parameter value inside function.
Type:
Type is used to prepare input field for this parameter. It is displayed when starting function, inside "Call Function" action.
Description: Description is also used to prepare input field for this parameter, same as "Type".
Default value: Default value for generated input field.