Aller au contenu

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 :

  1. Vérifier la connexion : échoue immédiatement avec SERVICE_NOT_CONNECTED si le service d'accessibilité n'est pas activé.
  2. Parcourir : visite récursivement chaque nœud de la fenêtre active, dans l'ordre de parcours.
  3. Construire : pour chaque nœud, enregistre text, contentDescription, et ses limites à l'écran (left/top/right/bottom), indexées à partir de 0.
  4. 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 } }
}

Exemple JSON complet

{
  "GetScreenElements": [
    { "id": "1", "title": "Extraire l'écran actuel", "json_object_output": "$screen_dump" }
  ]
}