Lemoncase2 is a Javascript-like scripting language developed by our technical team, which is used for developing scripts in Lemonce.

The language is specifically developed for automation testing, so it’s more professional and refined than other traditonal programming languages.

Read this guide to help you understand the language.


Zoom Table

Instruction keyword Action keyword Expression Macro Magic keyword
import click / dbclick <@”selector“> #TIMES $HREF
process input…by <#”selector“> #AUTOWAIT $BUTTON
return move <!”selector“> #LIMIT $IT
for…in hold A~~B $LOOP
for…of drop A==B
if…else scroll A!=B
continue jumpto RegExp
while wait
log assert
forward / back


Lemoncase2 is similar to JS in identifiers.

var a = 1; // You have to identify 'var' in JS.
//On the contrary, you do not have to use 'var' keyword in LC2.
//So this is a wrong statement in Lemoncase.
a = 1;
a = true;

Because Lemoncase2 is in UTF-8 encoding, in the definition of variables, many languages are allowed to be used。For example, define a string “Lemonce”:

Hello = "Lemonce"; // English variable
bonjour = "Lemonce"; // French variable
Hallo = "Lemonce"; // German variable
Hola = "Lemonce"; // Spanish variable
你好 = "Lemonce"; // Chinese variable
こんにちは = "Lemonce"; // Japanese variable
안녕하세요 = "Lemonce"; // Korean variable


The following shows a list of data types which can be used in LC2.

  • number (e.g., 0.12, 1e-3)
  • string (e.g., ‘you’, “me”)
  • Boolean (true/false)
  • RegExp

When you use ~~ operator, the RegExp will be used to match the string, otherwise it will generate a random string based on the RegExp.

RegExp can be used it if you want to do some fuzzy testing.

Instruction keyword

Below are the instruction keywords in LC2. Read more.

  • import
  • process (main/sub)
  • return
  • for…in/of
  • if…else
  • continue
  • while
  • log

Action keyword

Below are the action keywords in LC2. Read more.

  • click/dblclick
  • input…by
  • move/hold/drop
  • scroll
  • jumpto
  • back/forward/refresh
  • wait
  • assert
  • upload


Below are the expressions in LC2. Read more.

  • <# “selector” />
  • <@ “selector” />
  • <! “selector” />
  • “stringA” ~~ “stringB”
  • “stringA” ~~ /RegExp/
  • “stringA” == “stringB”
  • [var] == [var]????


Below are the type of selectors applied in Lemoncase2.Read more.

  • css selector
  • xpath
  • sizzle

Native sub-process

Below are the types of the inbuilt sub-process in LC2. Read more.

  • now/format
  • bool/number/string
  • abs/ceil/floor/max/min/random
  • length/charAt/indexOf/substr/trim
  • length/for…in/for…of/indexOf


Macro is the global setting for your case during runtime. Read more.

  • #TIMES
  • #LIMIT

Magic keyword

Below are the magic keywords which stand for some special functions. Read more.

  • $HREF
  • $IT
  • $LOOP


Global scope. There is no return keyword in LC2.The main process has no parameter.process main { } is the program’s entry.


Here are some examples for you to get started with the LC2 language. Read more.

Hello World

A Typical test case

Typical examples