Tâche Get Screen Elements
Résumé
- Nom interne :
GetScreenElements - Catégorie : Android UI
- Objectif : Extraire tous les éléments de l'écran actuel dans un objet JSON indexé par ordre de parcours, avec le texte, la content-description et la position de chaque entrée.
- Type de tâche : Normal
Compatibilité
- Version AndroMate minimale :
1.1.0 - Version AndroMate maximale :
1.1.0 - Android minimum :
Android 13 (API 33) - Android testé maximum :
Android 16 (API 36) -
Fabricants supportés :
- Samsung (One UI 6.x / 7.x / 8.x)
- Autres fabricants - pas encore supportés (Xiaomi HyperOS et Google Pixel en cours d'adaptation)
- Permissions requises :
ACCESSIBILITY_SERVICE
Description détaillée
La tâche Get Screen Elements est une requête en lecture seule - contrairement aux autres tâches Android UI de ce groupe, elle n'agit pas sur l'écran, elle le décrit. Elle parcourt l'intégralité de l'arbre d'accessibilité de la fenêtre active dans l'ordre de parcours et construit un objet JSON unique, indexé par "0", "1", "2", ..., où chaque valeur est { "text": ..., "contentDescription": ..., "position": { "left", "top", "right", "bottom" } }.
Utilisez-la pour inspecter la structure d'un écran pendant la construction d'un workflow, ou pour alimenter JsonObjectOperation / une logique de type For Each Element In Screen en aval.
Paramètres d'entrée
Cette tâche n'a pas de paramètres d'entrée configurables (hormis json_object_output, documenté ci-dessous sous Paramètres de sortie).
Paramètres de sortie
| Field | Type | Condition de déclenchement | Compatibilité Android | Compatibilité AndroMate | Défaut |
|---|---|---|---|---|---|
json_object_output |
Objet JSON (en chaîne) | Toujours en cas de succès - {"0": {text, contentDescription, position}, "1": {...}, ...} |
Android 13 (API 33) -> Android 16 (API 36) | 1.1.0 -> 1.1.0 | <ANDROMATE_NULL_VALUE> |
Exceptions
| Code | Nom de l'exception | Description |
|---|---|---|
SCREEN-AUTOMATOR-ERROR-010 |
Screen Automator Service Not Connected | Le service d'accessibilité AndroMate n'est pas activé/connecté. |
Diagramme d'exécution
flowchart TD
Start([GetScreenElements]) --> CheckConnected{Service d'accessibilité\nconnecté ?}
CheckConnected -->|Non| E1[SCREEN-AUTOMATOR-ERROR-010\nSERVICE_NOT_CONNECTED]
CheckConnected -->|Oui| Walk[Parcourir l'arbre d'accessibilité\ndans l'ordre de parcours]
Walk --> Build[Construire l'objet JSON\nindex -> text/contentDescription/position]
Build --> Store[Stocker dans json_object_output]
Store --> Success([JsonObjectTaskResult])
E1 --> Error([Exception])
style Start fill:#e3f2fd
style Success fill:#c8e6c9
style Error fill:#ffcdd2
style Walk fill:#f3e5f5
style Build fill:#fff9c4
Fonctionnement :
- Vérifier la connexion : échoue immédiatement avec
SERVICE_NOT_CONNECTEDsi le service d'accessibilité n'est pas activé. - Parcourir : visite récursivement chaque nœud de la fenêtre active, dans l'ordre de parcours.
- Construire : pour chaque nœud, enregistre
text,contentDescription, et ses limites à l'écran (left/top/right/bottom), indexées à partir de 0. - Stocker : écrit l'objet JSON résultant dans
json_object_output.
Exemples de code
Exemple 1 - Extraire l'écran actuel dans une variable
{
"GetScreenElements": [
{ "id": "1", "title": "Extraire l'écran", "json_object_output": "$screen" }
]
}
Détails des paramètres d'entrée
Cette tâche n'a pas de paramètres d'entrée configurables.
Détails des paramètres de sortie
1. Paramètre de sortie : json_object_output
Le nom de la variable de workflow qui reçoit l'extraction JSON. La position de chaque entrée correspond aux limites du nœud en coordonnées d'écran (pixels), pas à un point central.
Exemple
{
"0": { "text": "Login", "contentDescription": null, "position": { "left": 40, "top": 120, "right": 300, "bottom": 180 } },
"1": { "text": null, "contentDescription": "Settings icon", "position": { "left": 900, "top": 40, "right": 960, "bottom": 100 } }
}