Aller au contenu

Screen Automator — ClickInText

Résumé

  • Nom interne : SCREEN_AUTOMATOR
  • Catégorie : Automatisation écran / Accessibilité
  • But : Effectuer un clic sur un élément UI détecté via son texte visible ou accessible.
  • Type de tâche : Normale

Cette tâche permet à un workflow AndroMate d’interagir avec les composants UI basés sur le texte, la description d’accessibilité ou le tooltip.
Elle est essentielle pour automatiser les dialogues, boutons, menus, écrans de réglages, permissions et toute UI exposant des informations lisibles via l’accessibilité.

⚠️ Limitation importante :
Certains firmwares OEM ou dialogues système peuvent cacher ou bloquer les événements d’accessibilité. Exemples :

  • Dialogues de permissions système
  • Dialogues de sécurité d’installation/mise à jour sur Android 16+
  • Couches UI protégées par l’OEM (Samsung Knox, MIUI, etc.)

Si le texte n’est pas détectable par l’accessibilité, l’action ClickInText ne peut pas fonctionner.


Compatibilité

  • Version AndroMate minimale : 1.1.0
  • Version AndroMate maximale : 1.1.0
  • Version Android minimale : Android 13 (API 33)
  • Android maximum testé : Android 16 (API 36)

Constructeurs supportés

  • ✅ Samsung (One UI 6.x / 7.x / 8.x)

Permissions nécessaires

  • ACCESSIBILITY_SERVICE
  • (Optionnel) SYSTEM_ALERT_WINDOW si overlays utilisés

Description détaillée

Le mode ClickInText de ScreenAutomator recherche les éléments visibles en utilisant :

  • Text (texte visible)
  • contentDescription
  • tooltipText

Puis il effectue un clic lorsqu’un élément correspondant est trouvé selon la règle de comparaison choisie.

Il est essentiel lorsque :

  • Les éléments UI ont un texte ou un label d’accessibilité
  • Les boutons doivent être automatisés de façon fiable
  • Une interaction indépendante de la résolution est nécessaire
  • Une hiérarchie UI structurée est disponible

Exemples :

  • Clic sur des dialogues comme “OK”, “Autoriser”, “Réessayer”
  • Clic sur les boutons d’un assistant de configuration
  • Navigation dans les menus de Paramètres
  • Sélection d’éléments labelisés dans les applications

Paramètres d’entrée

Paramètre Type Obligatoire Valeurs possibles Compatibilité Android Compatibilité AndroMate Défaut
Action_type Enum Oui Doit être "ClickInText" Toutes versions Toutes versions
TextSelector Enum Oui Text, contentDescription, tooltipText Toutes versions Toutes versions
CompareType Enum Oui exactText, startWith, Contain Toutes versions Toutes versions
index String Non "0", "1", "2", ... Toutes versions Toutes versions "0"
enterText String Non Texte à saisir après le clic Nécessite clavier Toutes versions ""

Paramètres de sortie

Le mode ClickInText ne produit aucun résultat.
Il effectue simplement l’interaction.


Détails des paramètres

1. Action_type

Doit être exactement :

"Action_type": "ClickInText"

2. TextSelector

Indique d'où provient le texte.

Enum name Angular value Description
TEXT_SELECTOR "Text" Matches the visible text on a UI element.
CONTENT_DESCRIPTION "contentDescription" Matches accessibility descriptions (often hidden visually).
TOOL_TIP_TEXT "tooltipText" Matches tooltip text if provided by the app.

Example

"TextSelector": "Text"

3. CompareType

Définit comment la comparaison de textes est effectuée.

Enum name Angular text value Description
EXACT_TEXT "exactText" Match only if text is exactly equal.
START_WITH "startWith" Match if element begins with the provided text.
CONTAIN "Contain" Match if the text contains the provided value.

Example

"CompareType": "Contain"

4. index

Si plusieurs éléments correspondent, cette fonction sélectionne le n-ième.

Example

"index": "1"

5. enterText

Texte facultatif à saisir après avoir cliqué, si la cible est modifiable.

Example

"enterText": "username123"

Exceptions

Code Nom de l’exception Description
SCREEN-AUTOMATOR-ERROR-003 INVALID_ACTION_TYPE Type d’action invalide (doit être ClickInText)
SCREEN-AUTOMATOR-ERROR-006 UNSUPPORTED_TEXT_SELECTOR Le sélecteur de texte fourni n’est pas supporté
SCREEN-AUTOMATOR-ERROR-007 INVALID_JSON_ARRAY Tableau JSON invalide ou mal formé fourni en entrée
SCREEN-AUTOMATOR-ERROR-008 TIME_OUT L’exécution du clic texte a dépassé le délai autorisé

Example JSON complet

{
  "ScreenAutomator": [
    {
      "id": "31",
      "title": "Click Allow",
      "Action_type": "ClickInText",
      "TextSelector": "Text",
      "CompareType": "exactText",
      "index": "0",
      "enterText": "Allow"
    },
    {
      "id": "32",
      "title": "Click OK Button",
      "Action_type": "ClickInText",
      "TextSelector": "contentDescription",
      "CompareType": "Contain",
      "index": "0",
      "enterText": "OK"
    },
    {
      "id": "33",
      "title": "Input Username",
      "Action_type": "ClickInText",
      "TextSelector": "Text",
      "CompareType": "startWith",
      "index": "0",
      "enterText": "andromate_user"
    }
  ]
}