new UiElementArray()
Represents an array of UiElement objects, enabling batch operations across multiple devices or UI nodes.
UiElementArray extends the native Array object and supports concurrent execution of methods like:
clickSync(),longClickSync(),inputTextSync()getText(),getDescription(),screenshot()
It is typically returned by UiElement.findObjects() or created manually to combine multiple elements.
All actions in the array are automatically threaded and synchronized using TCThreadVirtual, allowing scalable automation.
Typical Usage
var array = new UiElementArray();
array.add(obj1);
array.add(obj2);
array.inputTextSync(0, "Total Control");
array.screenshot();
UiElementArray[] is an array of UiElement objects.
By calling the method of UiElementArray, you can perform operations such as click/inputText in batches on multiple devices.
Note:Please refer to the documentation in this chapter for UI Explorer and UiElement object. (Total Control UI Explorer&UiElement.findObject)
Example
// Example: Use `inputTextSync()` on elements from device 1 and device 2
var { Device } = require("sigma/device");
var { UiElement, UiElementArray } = require("sigma/aai");
// Get the UiElement object from device 1
var device1 = Device.getMain();
var obj1 = UiElement.findObject(device1, "T:Text Message");
// Get the UiElement object from device 2
var device2 = Device.getMain();
var obj2 = UiElement.findObject(device2, "T:Ordinary Message");
// Create a UiElementArray and add both elements
var array = new UiElementArray();
array.add(obj1);
array.add(obj2);
// Call inputTextSync to input text into both elements (requires Sigma input method)
var ret = array.inputTextSync(0, "Total Control.");
if (ret == true) {
print("inputText successfully.");
} else {
print("Failed to inputText: " + lastError());
}
// Expected Output:
inputText successfully.
### Notes:
- The `inputTextSync(index, text)` function sends text to each `UiElement` in the array.
- The first parameter `index` can typically be set to `0` when broadcasting the same input to all elements.
- This operation **requires the Sigma input method to be enabled** on the target devices.
Members
add
Add UiElement object to the array
Example
var { Device } = require("sigma/device");
var { UiElement, UiElementArray } = require("sigma/aai");
var sigmaDevice = Device.getMain();
var obj = UiElement.findObject(sigmaDevice,"T:Text Message");
var array = new UiElementArray();
array.add(obj);
click2Sync
similar to clickSync() except it will randomly click inside the bounds of the node.
Example
var { Device } = require("sigma/device");
var { UiElement, UiElementArray } = require("sigma/aai");
var sigmaDevice = Device.getMain();
var obj = UiElement.findObject(sigmaDevice,"T:Text Message");
var array = new UiElementArray();
array.add(obj);
array.click2Sync();
clickSync
Click in the middle of bounds on the specific component.
Example
var { Device } = require("sigma/device");
var { UiElement, UiElementArray } = require("sigma/aai");
var sigmaDevice = Device.getMain();
var obj = UiElement.findObject(sigmaDevice,"T:Text Message");
var array = new UiElementArray();
array.add(obj);
array.clickSync();
exists
Determine whether there is data in UiElementArray
Example
var { UiElementArray } = require("sigma/aai");
var array = new UiElementArray();
array.exists()
getDescription
Get the description in the UiElement object
Example
var { Device } = require("sigma/device");
var { UiElement, UiElementArray } = require("sigma/aai");
var sigmaDevice = Device.getMain();
var obj = UiElement.findObject(sigmaDevice,"T:Text Message");
var array = new UiElementArray();
array.add(obj);
array.getDescription();
getText
Get the text in the UiElement object
Example
var { Device } = require("sigma/device");
var { UiElement, UiElementArray } = require("sigma/aai");
var sigmaDevice = Device.getMain();
var obj = UiElement.findObject(sigmaDevice,"T:Text Message");
var array = new UiElementArray();
array.add(obj);
array.getText();
longClickSync
hold and click longer (500ms) to simulate a long click on the specific component.
Example
var { Device } = require("sigma/device");
var { UiElement, UiElementArray } = require("sigma/aai");
var sigmaDevice = Device.getMain();
var obj = UiElement.findObject(sigmaDevice,"T:Text Message");
var array = new UiElementArray();
array.add(obj);
array.longClickSync();
screenshot
Save the image on the node bounds to PC. (see devices.screenshot()).
Example
var { Device } = require("sigma/device");
var { UiElement, UiElementArray } = require("sigma/aai");
var sigmaDevice = Device.getMain();
var obj = UiElement.findObject(sigmaDevice,"T:Text Message");
var array = new UiElementArray();
array.add(obj);
array.screenshot();
screenshotToDevice
Save the image on the node bounds to device. (see devices.screenshotToDevice()).
Example
var { Device } = require("sigma/device");
var { UiElement, UiElementArray } = require("sigma/aai");
var sigmaDevice = Device.getMain();
var obj = UiElement.findObject(sigmaDevice,"T:Text Message");
var array = new UiElementArray();
array.add(obj);
array.screenshotToDevice();
setText
Modify the text in the UiElement object
Example
var { Device } = require("sigma/device");
var { UiElement, UiElementArray } = require("sigma/aai");
var sigmaDevice = Device.getMain();
var obj = UiElement.findObject(sigmaDevice,"T:Text Message");
var array = new UiElementArray();
array.add(obj);
array.setText(123);