Screen Actions
ActionsScreen content, screenshots, and node interactions
Access these methods through agent.actions. Get screen content, take screenshots, and interact with UI nodes.
screenContent()
screenContent(): Promise<AndroidNode>Gets the accessibility tree of the currently focused window. Returns an AndroidNode representing the root of the UI hierarchy.
Returns
Promise<AndroidNode>Root node of the accessibility tree
Examples
const screen = await agent.actions.screenContent();
// Find elementsconst button = screen.findTextOne("Submit");const allButtons = screen.filterAdvanced(f => f.isButton());const input = screen.findAdvanced(f => f.isEditText().isEditable());allScreensContent()
allScreensContent(): Promise<AndroidNode[]>Gets the accessibility trees from all visible windows (useful for dialogs, overlays).
Returns
Promise<AndroidNode[]>Array of root nodes for each window
Examples
const screens = await agent.actions.allScreensContent();for (const screen of screens) { const dialog = screen.findTextOne("OK"); if (dialog) break;}screenshot()
screenshot(maxWidth: number, maxHeight: number, quality: number, cropX1?: number, cropY1?: number, cropX2?: number, cropY2?: number): Promise<{screenshot: string | null, compressedWidth: number, compressedHeight: number, originalWidth: number, originalHeight: number}>Takes a screenshot with optional scaling and cropping.
Parameters
| Name | Type | Description |
|---|---|---|
maxWidth | number | Maximum width to scale to |
maxHeight | number | Maximum height to scale to |
quality | number | JPEG quality (1-100) |
cropX1? | number | Crop region left |
cropY1? | number | Crop region top |
cropX2? | number | Crop region right |
cropY2? | number | Crop region bottom |
Returns
{screenshot, compressedWidth, compressedHeight, originalWidth, originalHeight}Screenshot data as base64 string with dimensions
Examples
const result = await agent.actions.screenshot(1080, 1920, 80);const result = await agent.actions.screenshot(500, 500, 90, 100, 100, 600, 600);nodeAction()
nodeAction(node: AndroidNode | object, actionInt: number, data?: object, fieldsToIgnore?: string[]): Promise<{actionPerformed: boolean}>Performs an accessibility action on a node.
Parameters
| Name | Type | Description |
|---|---|---|
node | AndroidNode | object | The node to perform action on |
actionInt | number | Action constant (use agent.constants.ACTION_*) |
data? | object | Additional action data |
fieldsToIgnore? | string[] | Node fields to ignore when matching |
Returns
{actionPerformed: boolean}Whether the action was successfully performed
Examples
const screen = await agent.actions.screenContent();const button = screen.findTextOne("Submit");
if (button) { const result = await button.performAction(agent.constants.ACTION_CLICK); console.log("Clicked:", result.actionPerformed);}const result = await agent.actions.nodeAction( button, agent.constants.ACTION_CLICK);showNotification()
showNotification(title: string, message: string): Promise<void>Shows a system notification.
Parameters
| Name | Type | Description |
|---|---|---|
title | string | Notification title |
message | string | Notification message |
Returns
Promise<void>Resolves when notification is shown
Examples
await agent.actions.showNotification("Task Complete", "Your automation has finished.");