LeanFT Grid code samples (Java SDK)

The following code samples show how to lock a LeanFT grid node that provides the capabilities required for your test, and then perform operations on that node.

Lock a node as part of the launch browser step

Call BrowserFactory.launch with a browser description that includes environment capabilities. This call locks a node with the described environment, launches the browser on the node, and returns a browser handle.

@Test
public void grid_LaunchBrowser_BrowserDescWithEnvDesc () throws GeneralLeanFtException {

    final String nodeOsType = "Windows";		// set this to the node OS type
    final String nodeOsVersion = "7";		// set this to the node OS version
    final String browserType = BrowserType.CHROME;	// set this to the requested browser type
    final String browserVersion = ">57";		// set this to the requested browser version

    // create a browser description object that includes also the required environment 
    BrowserDescription browserDesc = new BrowserDescription.Builder().build();
    browserDesc.set("type", browserType);
    browserDesc.set("version", browserVersion);
    browserDesc.set("ostype", nodeOsType);
    browserDesc.set("osversion", nodeOsVersion);

    // launch the browser (the required DesktopEnvironment will be locked for you behind the scenes)
    Browser browser = BrowserFactory.launch(browserDesc);
    
    // your test code goes here 

    browser.close();
}	

Back to top

Lock a node and then launch a browser on that node

Call EnvironmentFactory.get with an environment description. This calls locks a node with the described environment and returns an environment handle.

Call BrowserFactory.launch with a browser description and the environment handle to launch the browser on the locked node.

@Test
public void grid_LaunchBrowser_OnSpecifiedEnv() throws GeneralLeanFtException {

    final String nodeOsType = "Windows";		// set this to the node OS type
    final String nodeOsVersion = "7";		// set this to the node OS version
    final String browserType = BrowserType.CHROME;	// set this to the requested browser type
    final String browserVersion = ">57";// set this to the requested browser version

    // create an environment description object that includes required environment capabilities
    EnvironmentDescription envDesc = new EnvironmentDescription.Builder().build();
    envDesc.set("ostype", nodeOsType);
    envDesc.set("osversion", nodeOsVersion);

    // lock a matching desktop environment
    DesktopEnvironment env = EnvironmentFactory.get(envDesc);

    // create a browser description object that includes only browser description 
    BrowserDescription browserDesc = new BrowserDescription.Builder().build();
    browserDesc.set("type", browserType);
    browserDesc.set("version", browserName);

    // launch the browser on the locked desktop environment 
    Browser browser = BrowserFactory.launch(browserDesc, env);

    // your test code goes here 

    browser.close();
}				

Back to top

Lock a node and perform operations on a desktop application

Call EnvironmentFactory.get with an environment description. This calls locks a node with the described environment and returns an environment handle (env).

Call env.describe to specify the calculator application on the node, and then press its buttons.

@Test
public void grid_Describe_ClickOnDescribedObject() throws GeneralLeanFtException {

    final String nodeOsType = "Windows";		// set this to the node OS type
    final String nodeOsVersion = "7";		// set this to the node OS version


    // create capabilities map, convert it to environment description and lock a matching desktop environment
    Map<String,Object> capabilities = new HashMap<>();
    capabilities.put("osType", nodeOsType);
    capabilities.put("osversion ", nodeOsVersion);
    DesktopEnvironment env = EnvironmentFactory.get(EnvironmentDescription.fromMap(capabilities));

    // describe a window hierarchy under the desktop environment
    Window calculator = env.describe(Window.class, new WindowDescription.Builder()
        .childWindow(false)
        .ownedWindow(false)
        .windowClassRegExp("CalcFrame")
        .windowTitleRegExp("Calculator").build());


     // your test code goes here.

     // e.g. this is how you click on a button in the desktop application:
     Button btn = calculator.describe(Button.class, new ButtonDescription.Builder()
         .nativeClass("Button")
         .text("")
         .windowId(135).build());
     // click 
     btn.click();
}				

Back to top

Lock a node and perform operations using the node's mouse

Call EnvironmentFactory.get with an environment description. This calls locks a node with the described environment and returns an environment handle (env).

Call env.getMouse to gain access to the node's mouse and use it for operations.

@Test
public void grid_DeviceReplay_Mouse () throws GeneralLeanFtException {

    final String nodeOsType = "Windows";		// set this to the node OS type
    final String nodeOsVersion = "7";		// set this to the node OS version

    // create capabilities map, convert it to environment description and lock a matching desktop environment   
    Map<String,Object> capabilities = new HashMap<>();
    capabilities.put("osType", nodeOsType);
    capabilities.put("osversion ", nodeOsVersion);
    DesktopEnvironment env = EnvironmentFactory.get(EnvironmentDescription.fromMap(capabilities));

    // get Mouse to perform low-level mouse actions
    MouseDevice mouse = env.getMouse(); 


    // your test code goes here.

    // e.g. this is how you right-click on point:
    mouse.click(new Point(80,80), MouseButton.RIGHT);
}				

Back to top