Note: You are looking at a static snapshot of documentation related to Robot Framework automations. The most recent documentation is at https://robocorp.com/docs

Robot Framework cheat sheet and quick reference

This Robot Framework syntax cheat sheet and quick reference demonstrates the syntax in a quick-to-read and concise format. Use it in your daily development to look up how to work with tasks, keywords, arguments, for loops, conditional if / else / else if execution, variables, lists, dictionaries, libraries, etc.

This reference robot demonstrates Robot Framework 5 syntax, including native if / else / else if conditionals, nested control structures such as nested for loops, while loop, and try / except / finally error catching.

Robot Framework 5 syntax recipes cheat sheet robot

*** Settings *** Documentation Robot Framework 5 syntax recipes cheat sheet robot. ... Demonstrates Robot Framework syntax in a concise format. Library MyLibrary Library MyLibrary WITH NAME HelloLibrary Library MyLibrary greeting=Howdy! WITH NAME HowdyLibrary Resource keywords.robot Variables variables.py Suite Setup Log Suite Setup! Suite Teardown Log Suite Teardown! Task Setup Log Task Setup! Task Teardown Log Task Teardown! Task Timeout 2 minutes *** Variables *** ${STRING}= cat ${NUMBER}= ${1} @{LIST}= one two three &{DICTIONARY}= string=${STRING} number=${NUMBER} list=@{LIST} ${ENVIRONMENT_VARIABLE}= %{PATH=Default value} *** Tasks *** Call keywords with a varying number of arguments A keyword without arguments A keyword with a required argument Argument A keyword with a required argument argument=Argument A keyword with an optional argument A keyword with an optional argument Argument A keyword with an optional argument argument=Argument A keyword with any number of arguments A keyword with any number of arguments arg1 arg2 arg3 arg4 arg5 A keyword with one or more arguments arg1 A keyword with one or more arguments arg1 arg2 arg3 Call a keyword that returns a value ${value}= A keyword that returns a value Log ${value} # Return value Do conditional IF - ELSE IF - ELSE execution IF ${NUMBER} > 1 Log Greater than one. ELSE IF "${STRING}" == "dog" Log It's a dog! ELSE Log Probably a cat. END Loop a list Log ${LIST} # ['one', 'two', 'three'] FOR ${item} IN @{LIST} Log ${item} # one, two, three END FOR ${item} IN one two three Log ${item} # one, two, three END Loop a dictionary Log ${DICTIONARY} # {'string': 'cat', 'number': 1, 'list': ['one', 'two', 'three']} FOR ${key_value_tuple} IN &{DICTIONARY} Log ${key_value_tuple} # ('string', 'cat'), ('number', 1), ('list', ['one', 'two', 'three']) END FOR ${key} IN @{DICTIONARY} Log ${key}=${DICTIONARY}[${key}] # string=cat, number=1, list=['one', 'two', 'three'] END Loop a range from 0 to end index FOR ${index} IN RANGE 10 Log ${index} # 0-9 END Loop a range from start to end index FOR ${index} IN RANGE 1 10 Log ${index} # 1-9 END Loop a range from start to end index with steps FOR ${index} IN RANGE 0 10 2 Log ${index} # 0, 2, 4, 6, 8 END Nest loops @{alphabets}= Create List a b c Log ${alphabets} # ['a', 'b', 'c'] @{numbers}= Create List ${1} ${2} ${3} Log ${numbers} # [1, 2, 3] FOR ${alphabet} IN @{alphabets} FOR ${number} IN @{numbers} Log ${alphabet}${number} # a1, a2, a3, b1, b2, b3, c1, c2, c3 END END Exit a loop on condition FOR ${i} IN RANGE 5 IF ${i} == 2 BREAK Log ${i} # 0, 1 END Continue a loop from the next iteration on condition FOR ${i} IN RANGE 3 IF ${i} == 1 CONTINUE Log ${i} # 0, 2 END Create a scalar variable ${animal}= Set Variable dog Log ${animal} # dog Log ${animal}[0] # d Log ${animal}[-1] # g Create a number variable ${π}= Set Variable ${3.14} Log ${π} # 3.14 Create a list variable @{animals}= Create List dog cat bear Log ${animals} # ['dog', 'cat', 'bear'] Log ${animals}[0] # dog Log ${animals}[-1] # bear Create a dictionary variable &{dictionary}= Create Dictionary key1=value1 key2=value2 Log ${dictionary} # {'key1': 'value1', 'key2': 'value2'} Log ${dictionary}[key1] # value1 Log ${dictionary.key2} # value2 Access the items in a sequence (list, string) ${string}= Set Variable Hello world! Log ${string}[0] # H Log ${string}[:5] # Hello Log ${string}[6:] # world! Log ${string}[-1] # ! @{list}= Create List one two three four five Log ${list} # ['one', 'two', 'three', 'four', 'five'] Log ${list}[0:6:2] # ['one', 'three', 'five'] Call a custom Python library ${greeting}= MyLibrary.Get Greeting Log ${greeting} # Hello! ${greeting}= HelloLibrary.Get Greeting Log ${greeting} # Hello! ${greeting}= HowdyLibrary.Get Greeting Log ${greeting} # Howdy! Call a keyword from a separate resource file My keyword in a separate resource file Access a variable in a separate variable file Log ${MY_VARIABLE_FROM_A_SEPARATE_VARIABLE_FILE} Split arguments to multiple lines A keyword with any number of arguments ... arg1 ... arg2 ... arg3 Log available variables Log Variables # ${/} = / # &{DICTIONARY} = { string=cat | number=1 | list=['one', 'two', 'three'] } # ${OUTPUT_DIR} = /Users/<username>/... # ... Evaluate Python expressions ${path}= Evaluate os.environ.get("PATH") ${path}= Set Variable ${{os.environ.get("PATH")}} Use special variables Log ${EMPTY} # Like the ${SPACE}, but without the space. Log ${False} # Boolean False. Log ${None} # Python None Log ${null} # Java null. Log ${SPACE} # ASCII space (\x20). Log ${SPACE * 4} # Four spaces. Log "${SPACE}" # Quoted space (" "). Log ${True} # Boolean True. TRY / EXCEPT: Catch any exception TRY Fail EXCEPT Log EXCEPT with no arguments catches any exception. END TRY / EXCEPT: Catch an exception by exact message TRY Fail Error message EXCEPT Error message Log Catches only "Error message" exceptions. Log Enables error-specific exception handling. END TRY / EXCEPT: Multiple EXCEPT statements TRY Fail Error message EXCEPT Another error message Log Catches only "Another error message" exceptions. EXCEPT Error message Log Catches the "Error message" exception. END TRY / EXCEPT: Multiple messages in EXCEPT statement TRY Fail CCC EXCEPT AAA BBB CCC Log Catches any "AAA", "BBB", or "CCC" exception. END TRY / EXCEPT: Catch a specific exception, or an unexpected exception TRY Fail Error message EXCEPT Another message Log Catches only "Another message" exceptions. EXCEPT Log Catches any exception. Log Useful for handling unexpected exceptions. END TRY / EXCEPT: Catch exceptions where the message starts with TRY Fail A long error message with lots of details EXCEPT A long error message type=start Log Matches the start of an error message. END TRY / EXCEPT: Capture the error message TRY Fail Goodbye, world! EXCEPT AS ${error_message} Log ${error_message} # Goodbye, world! END TRY / EXCEPT: Using ELSE when no exceptions occured TRY Log All good! EXCEPT Error message Log An error occured. ELSE Log No error occured. END TRY / EXCEPT / FINALLY: Always execute code no matter if exceptions or not TRY Log All good! FINALLY Log FINALLY is always executed. END TRY Fail Catastrophic failure! EXCEPT Log Catches any exception. FINALLY Log FINALLY is always executed. END TRY / EXCEPT / ELSE / FINALLY: All together! TRY Fail Error message EXCEPT Log Executed if any exception occurs. ELSE Log Executed if no exceptions occur. FINALLY Log FINALLY is always executed. END TRY / EXCEPT: Glob pattern matching TRY Fail My error: 99 occured EXCEPT My error: * type=glob Log Catches by glob pattern matching. END TRY / EXCEPT: Regular expression matching TRY Fail error 99 occured EXCEPT [Ee]rror \\d+ occured type=regexp Log Catches by regular expression pattern matching. END WHILE: Loop while the default limit (10000) is hit TRY WHILE True Log Executed until the default loop limit (10000) is hit. END EXCEPT WHILE loop was aborted type=start Log The loop did not finish within the limit. END WHILE: Loop while the given limit is hit TRY WHILE True limit=10 Log Executed until the given loop limit (10) is hit. END EXCEPT WHILE loop was aborted type=start Log The loop did not finish within the limit. END WHILE: Loop while condition evaluates to True ${x}= Set Variable ${0} WHILE ${x} < 3 Log Executed as long as the condition is True. ${x}= Evaluate ${x} + 1 END WHILE: Skip a loop iteration with CONTINUE ${x}= Set Variable ${0} WHILE ${x} < 3 ${x}= Evaluate ${x} + 1 # Skip this iteration. IF ${x} == 2 CONTINUE Log x = ${x} # x = 1, x = 3 END WHILE: Exit loop with BREAK WHILE True BREAK Log This will not be logged. END *** Keywords *** A keyword without arguments Log No arguments. A keyword with a required argument [Arguments] ${argument} Log Required argument: ${argument} A keyword with an optional argument [Arguments] ${argument}=Default value Log Optional argument: ${argument} A keyword with any number of arguments [Arguments] @{varargs} Log Any number of arguments: @{varargs} A keyword with one or more arguments [Arguments] ${argument} @{varargs} Log One or more arguments: ${argument} @{varargs} A keyword that returns a value RETURN Return value RETURN: Return a value from a keyword IF True RETURN It is true! ELSE RETURN It is not true! RETURN: Return without a value IF True RETURN Log This will not be logged. A keyword with documentation [Documentation] This is keyword documentation. No Operation

How to add robot documentation

*** Settings *** Documentation Robot Framework 5 syntax recipes cheat sheet robot. ... Demonstrates Robot Framework syntax in a concise format.

How to import libraries

*** Settings *** Library MyLibrary Library MyLibrary WITH NAME HelloLibrary Library MyLibrary greeting=Howdy! WITH NAME HowdyLibrary

How to import resource files, such as keywords

*** Settings *** Resource keywords.robot

How to run suite and task setup and teardown

*** Settings *** Suite Setup Log Suite Setup! Suite Teardown Log Suite Teardown! Task Setup Log Task Setup! Task Teardown Log Task Teardown!

How to set task timeout

*** Settings *** Task Timeout 2 minutes

How to import variable files

*** Settings *** Variables variables.py

How to define suite variables

*** Variables *** ${STRING}= cat ${NUMBER}= ${1} @{LIST}= one two three &{DICTIONARY}= string=${STRING} number=${NUMBER} list=@{LIST} ${ENVIRONMENT_VARIABLE}= %{PATH=Default value}

How to implement a keyword without arguments

*** Keywords *** A keyword without arguments Log No arguments.

How to implement a keyword with a required argument

*** Keywords *** A keyword with a required argument [Arguments] ${argument} Log Required argument: ${argument}

How to implement a keyword with an optional argument

*** Keywords *** A keyword with an optional argument [Arguments] ${argument}=Default value Log Optional argument: ${argument}

How to implement a keyword with any number of arguments

*** Keywords *** A keyword with any number of arguments [Arguments] @{varargs} Log Any number of arguments: @{varargs}

How to implement a keyword with one or more arguments

*** Keywords *** A keyword with one or more arguments [Arguments] ${argument} @{varargs} Log One or more arguments: ${argument} @{varargs}

How to implement a keyword that returns a value

*** Keywords *** A keyword that returns a value RETURN Return value

How to implement a keyword that returns a value on condition

*** Keywords *** RETURN: Return a value from a keyword IF True RETURN It is true! ELSE RETURN It is not true!

How to implement a keyword that returns without a value

*** Keywords *** RETURN: Return without a value IF True RETURN Log This will not be logged.

How to add keyword documentation

*** Keywords *** A keyword with documentation [Documentation] This is keyword documentation. No Operation

How to call keywords with a varying number of arguments

*** Tasks *** Call keywords with a varying number of arguments A keyword without arguments A keyword with a required argument Argument A keyword with a required argument argument=Argument A keyword with an optional argument A keyword with an optional argument Argument A keyword with an optional argument argument=Argument A keyword with any number of arguments A keyword with any number of arguments arg1 arg2 arg3 arg4 arg5 A keyword with one or more arguments arg1 A keyword with one or more arguments arg1 arg2 arg3

How to call a keyword that returns a value

*** Tasks *** Call a keyword that returns a value ${value}= A keyword that returns a value Log ${value} # Return value

How to do conditional IF - ELSE IF - ELSE execution

*** Tasks *** Do conditional IF - ELSE IF - ELSE execution IF ${NUMBER} > 1 Log Greater than one. ELSE IF "${STRING}" == "dog" Log It's a dog! ELSE Log Probably a cat. 🤔 END

How to loop a list

*** Tasks *** Loop a list Log ${LIST} # ['one', 'two', 'three'] FOR ${item} IN @{LIST} Log ${item} # one, two, three END FOR ${item} IN one two three Log ${item} # one, two, three END

How to loop a dictionary

*** Tasks *** Loop a dictionary Log ${DICTIONARY} # {'string': 'cat', 'number': 1, 'list': ['one', 'two', 'three']} FOR ${key_value_tuple} IN &{DICTIONARY} Log ${key_value_tuple} # ('string', 'cat'), ('number', 1), ('list', ['one', 'two', 'three']) END FOR ${key} IN @{DICTIONARY} Log ${key}=${DICTIONARY}[${key}] # string=cat, number=1, list=['one', 'two', 'three'] END

How to loop a range from 0 to end index

*** Tasks *** Loop a range from 0 to end index FOR ${index} IN RANGE 10 Log ${index} # 0-9 END

How to loop a range from start to end index

*** Tasks *** Loop a range from start to end index FOR ${index} IN RANGE 1 10 Log ${index} # 1-9 END

How to loop a range from start to end index with steps

*** Tasks *** Loop a range from start to end index with steps FOR ${index} IN RANGE 0 10 2 Log ${index} # 0, 2, 4, 6, 8 END

How to nest loops

*** Tasks *** Nest loops @{alphabets}= Create List a b c Log ${alphabets} # ['a', 'b', 'c'] @{numbers}= Create List ${1} ${2} ${3} Log ${numbers} # [1, 2, 3] FOR ${alphabet} IN @{alphabets} FOR ${number} IN @{numbers} Log ${alphabet}${number} # a1, a2, a3, b1, b2, b3, c1, c2, c3 END END

How to exit a loop on condition

*** Tasks *** Exit a loop on condition FOR ${i} IN RANGE 5 Exit For Loop If ${i} == 2 Log ${i} # 0, 1 END

How to continue a loop from the next iteration on condition

*** Tasks *** Continue a loop from the next iteration on condition FOR ${i} IN RANGE 3 Continue For Loop If ${i} == 1 Log ${i} # 0, 2 END

How to create a scalar variable

*** Tasks *** Create a scalar variable ${animal}= Set Variable dog Log ${animal} # dog Log ${animal}[0] # d Log ${animal}[-1] # g

How to create a number variable

*** Tasks *** Create a number variable ${π}= Set Variable ${3.14} Log ${π} # 3.14

How to create a list variable

*** Tasks *** Create a list variable @{animals}= Create List dog cat bear Log ${animals} # ['dog', 'cat', 'bear'] Log ${animals}[0] # dog Log ${animals}[-1] # bear

How to create a dictionary variable

*** Tasks *** Create a dictionary variable &{dictionary}= Create Dictionary key1=value1 key2=value2 Log ${dictionary} # {'key1': 'value1', 'key2': 'value2'} Log ${dictionary}[key1] # value1 Log ${dictionary.key2} # value2

How to access the items in a sequence (list, string)

*** Tasks *** Access the items in a sequence (list, string) ${string}= Set Variable Hello world! Log ${string}[0] # H Log ${string}[:5] # Hello Log ${string}[6:] # world! Log ${string}[-1] # ! @{list}= Create List one two three four five Log ${list} # ['one', 'two', 'three', 'four', 'five'] Log ${list}[0:6:2] # ['one', 'three', 'five']

How to use TRY / EXCEPT / FINALLY

*** Tasks *** TRY / EXCEPT: Catch any exception TRY Fail EXCEPT Log EXCEPT with no arguments catches any exception. END TRY / EXCEPT: Catch an exception by exact message TRY Fail Error message EXCEPT Error message Log Catches only "Error message" exceptions. Log Enables error-specific exception handling. END TRY / EXCEPT: Multiple EXCEPT statements TRY Fail Error message EXCEPT Another error message Log Catches only "Another error message" exceptions. EXCEPT Error message Log Catches the "Error message" exception. END TRY / EXCEPT: Multiple messages in EXCEPT statement TRY Fail CCC EXCEPT AAA BBB CCC Log Catches any "AAA", "BBB", or "CCC" exception. END TRY / EXCEPT: Catch a specific exception, or an unexpected exception TRY Fail Error message EXCEPT Another message Log Catches only "Another message" exceptions. EXCEPT Log Catches any exception. Log Useful for handling unexpected exceptions. END TRY / EXCEPT: Catch exceptions where the message starts with TRY Fail A long error message with lots of details EXCEPT A long error message type=start Log Matches the start of an error message. END TRY / EXCEPT: Capture the error message TRY Fail Goodbye, world! EXCEPT AS ${error_message} Log ${error_message} # Goodbye, world! END TRY / EXCEPT: Using ELSE when no exceptions occured TRY Log All good! EXCEPT Error message Log An error occured. ELSE Log No error occured. END TRY / EXCEPT / FINALLY: Always execute code no matter if exceptions or not TRY Log All good! FINALLY Log FINALLY is always executed. END TRY Fail Catastrophic failure! EXCEPT Log Catches any exception. FINALLY Log FINALLY is always executed. END TRY / EXCEPT / ELSE / FINALLY: All together! TRY Fail Error message EXCEPT Log Executed if any exception occurs. ELSE Log Executed if no exceptions occur. FINALLY Log FINALLY is always executed. END TRY / EXCEPT: Glob pattern matching TRY Fail My error: 99 occured EXCEPT My error: * type=glob Log Catches by glob pattern matching. END TRY / EXCEPT: Regular expression matching TRY Fail error 99 occured EXCEPT [Ee]rror \\d+ occured type=regexp Log Catches by regular expression pattern matching. END

How to use WHILE loops

*** Tasks *** WHILE: Loop while the default limit (10000) is hit TRY WHILE True Log Executed until the default loop limit (10000) is hit. END EXCEPT WHILE loop was aborted type=start Log The loop did not finish within the limit. END WHILE: Loop while the given limit is hit TRY WHILE True limit=10 Log Executed until the given loop limit (10) is hit. END EXCEPT WHILE loop was aborted type=start Log The loop did not finish within the limit. END WHILE: Loop while condition evaluates to True ${x}= Set Variable ${0} WHILE ${x} < 3 Log Executed as long as the condition is True. ${x}= Evaluate ${x} + 1 END WHILE: Skip a loop iteration with CONTINUE ${x}= Set Variable ${0} WHILE ${x} < 3 ${x}= Evaluate ${x} + 1 # Skip this iteration. IF ${x} == 2 CONTINUE Log x = ${x} # x = 1, x = 3 END WHILE: Exit loop with BREAK WHILE True BREAK Log This will not be logged. END

How to call a custom Python library

MyLibrary.py file

class MyLibrary: def __init__(self, greeting="Hello!"): self._greeting = greeting def get_greeting(self): return self._greeting

Importing and calling the library

*** Settings *** Library MyLibrary Library MyLibrary WITH NAME HelloLibrary Library MyLibrary greeting=Howdy! WITH NAME HowdyLibrary *** Tasks *** Call a custom Python library ${greeting}= MyLibrary.Get Greeting Log ${greeting} # Hello! ${greeting}= HelloLibrary.Get Greeting Log ${greeting} # Hello! ${greeting}= HowdyLibrary.Get Greeting Log ${greeting} # Howdy!

How to call a keyword from a separate resource file

keywords.robot

*** Settings *** Documentation Keywords in a separate resource file. *** Keywords *** My keyword in a separate resource file Log To Console My keyword in a separate resource file!

Importing and calling the keyword

*** Settings *** Resource keywords.robot *** Tasks *** Call a keyword from a separate resource file My keyword in a separate resource file

How to access a variable in a separate variable file

variables.py

MY_VARIABLE_FROM_A_SEPARATE_VARIABLE_FILE = "My variable from a separate variable file"

Importing and using the variable

*** Settings *** Variables variables.py *** Tasks *** Access a variable in a separate variable file Log ${MY_VARIABLE_FROM_A_SEPARATE_VARIABLE_FILE}

How to split arguments to multiple lines

*** Tasks *** Split arguments to multiple lines A keyword with any number of arguments ... arg1 ... arg2 ... arg3

How to log available variables

*** Tasks *** Log available variables Log Variables # ${/} = / # &{DICTIONARY} = { string=cat | number=1 | list=['one', 'two', 'three'] } # ${OUTPUT_DIR} = /Users/<username>/... # ...

How to evaluate Python expressions

*** Tasks *** Evaluate Python expressions ${path}= Evaluate os.environ.get("PATH") ${path}= Set Variable ${{os.environ.get("PATH")}}

Learn more

Last edit: May 3, 2022