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_WINDOWsi overlays utilisés
Description détaillée
Le mode ClickInText de ScreenAutomator recherche les éléments visibles en utilisant :
Text(texte visible)contentDescriptiontooltipText
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 :
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
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
4. index
Si plusieurs éléments correspondent, cette fonction sélectionne le n-ième.
Example
5. enterText
Texte facultatif à saisir après avoir cliqué, si la cible est modifiable.
Example
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"
}
]
}