A robot is made up of steps. A step is a building block in a robot program. There are four types of steps: Action steps, Try steps, Group steps and End steps.

A Step

A step works on a robot state and processes it according to the configuration of the step. A step thus has an input robot state and generates an output robot state. The only exception to this is the End step. End steps mark the end of a branch in a robot and not as such the end of a robot, i.e. the the robot does not necessarily stop execution after an end step. End steps are the only steps in a robot that does not have outgoing connections.

An End Step

Steps may have properties, such as a step name, a list of tag finders, a step action and an error handling. While Action steps have all these properties, other types of steps only have some of these.

The step name provides a symbolic name for the step, such as "Extract Headline" and "Load Search Page". In the above robot, the step name is "MyStep".

The finders find the elements (e.g. HTML/XML tags or Excel cells) in the page that the step action (see below) should work on. Some step actions require a single element, whereas others can handle more than one element. Some step actions accept no elements at all. There are two kinds of finders: Tag Finders that finds tag in HTML or XML pages and Range Finders that finds cells in Excel pages.

The step action is the action that the step performs. The action is the "heart and brain" of the step, and it is the selection of the right step action that is the challenge of robot writing. For example, an Extract action might extract the text from a tag in an HTML page and store it in a variable. And a Click action might load the URL residing in an <a>-tag and replace the page of the current window in the robot state with the newly loaded HTML page. An action usually changes the robot state. For example, the Extract action changes the variables, and the Click action may change the pages/windows, the cookies and the authentications.

A step can be executed. A step that is executed accepts a robot state as input and, by applying the finders and step action in turn, produces an output robot state. The output robot state is then passed on to the following step and becomes its input robot state. Some step actions are termed loop actions (and steps having such actions are called loop steps). A loop step may generate zero or more output robot states, and causes the following steps to be executed once for each of them.

Steps can be grouped together in Group Steps. Group steps can be expanded or collapsed. The figure below shows an example of an expanded Group step with a collapsed Group step inside it. The icons and in the top left corner of Group steps is used to expand or collapse these.

Group Steps

A step is valid if it has been properly configured so that execution can be attempted. For example, if a step has no action, it is invalid since execution cannot be attempted.

A step definition also specifies error handling for the step, but this is more complex and is described separately in a following subsection.