click / dblclick


click/dblclick “selector“;

Click or double click a HTML element.

process main () {

    // Deepin Technology Community
    jumpto "https://www.deepin.org/en/";
    wait 2333;

    // dblclick
    dblclick '#hs-site-navigation > .hs-toggle-menu';
    wait 2323;

    // click
    click '#hs-site-navigation > .hs-toggle-menu';
}


input…by


input “selector“ by “string”;

input a string to a text area.

// eg: id="link" class="case" 
input 'div#link.case' by "hello world.";


move


move “selector“;

Trigger onmouseenter or onmouseleave events on a HTML element. This action can trigger CSShover.

process main () {

    jumpto "https://www.deepin.org/en/";
    wait 2333;
    click '#hs-site-navigation > .hs-toggle-menu';

    // Move on the 3 elements in the following.
    move '#menu-main span:contains(Projects)';
    move '#menu-main span:contains(Download)';
    move '#menu-main span:contains(Documents)';
}


hold


hold “selector“;

Hold an element by mouse continuely. The specific example is shown in the drop below.


drop


drop;

Release an element by mouse.

process main () {

    jumpto "https://jqueryui.com/draggable/";
    wait 2333;

    //Click on an element in the page, use `move` to achieve drag and pointer movement.
    hold '#content > iframe:nth-child(5) < #draggable';
    move '#content > iframe:nth-child(5) < html';

    //Release the element.
    drop;
}


scroll


scroll “selector“;

Scroll the page and keep the selected element in the center of the screen.

process main () {

    jumpto "http://www.lemonce.com";
    wait 2333;

    //scroll
    scroll 'footer';
}


jumpto


jumpto “URL”;

jump to a URL.


back / forward / refresh


back;
forward;
refresh;

forward move forward to the next page; back move back to the previous page;refresh refresh the current page.

process main () {


    // The world's leading software development platform · GitHub
    jumpto "https://github.com/";
    wait 2333;
    // Sign up
    click "a:contains(Sign up)";
    wait 2000;

    //back
    back;
    wait 2000;

    //forward
    forward;
    wait 2000;

    //refresh
    refresh;
}


wait


wait [time:number]

Wait a few time like a person[in milliseconds].

//Editor will wait 3000ms to start the next action.
wait 3000;


assert


assert [expression] in [time:number]

Assert that the expression is true [within certain time]. More about expression.

//Asserts the existence of a input box with the id of "test".
assert <#"textarea#test">;

//Asserts that a input box with the id of "test" will appear in 2 seconds.
assert <#"textarea#test"> in 2000;

process main () {

    // The world's leading software development platform · GitHub
    jumpto "https://github.com/";
    // wait
    wait 2333;
    // click "login"
    click "#user\\[login\\]";
    // assert
    assert <@'h1'> ~~ "Built" in 1000;
}


upload


upload [“filePath1”,”filePath2”]

If a test needs to upload a file to a web application, you can use the upload command to upload. There’s one example in the following.

Attention:For Windows users, scine ‘\’ is used in the system path, you need to change ‘\’ to ‘/‘ or use escape character like ‘\\’ to ensure lemonce runs successfully. For example, ‘C:\Users\1.img’ needs to be transformed into ‘C:/Users/1.img’ in lemonce.

#AUTOWAIT 1000
process main () {

    // Angular file upload - flow.js
    jumpto "http://flowjs.github.io/ng-flow/";
    wait 3333;
    // Click 'Basic upload'.
    click "div.ng-scope > .drop > span.btn-default";
    upload ["C:/1.lc2"];
    wait 4000;
    // Click 'Single image upload'.
    click "body > div:nth-child(1) > section:nth-child(2) > div:nth-child(10) > div:nth-child(4) > span:nth-child(1)";
    upload ["C:/1.jpg","D:/2.png"];
    // Lemonce will upload the first file by default when only one file is supported.
    wait 4000;
}