Aller au contenu

Tâche Fill Text

Résumé

  • Nom interne : FillText
  • Catégorie : Android UI
  • Objectif : Trouver un élément éditable par sélecteur et le remplir avec une valeur texte.
  • 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 Fill Text localise un élément par sélecteur et définit son texte via AccessibilityNodeInfo.ACTION_SET_TEXT - sans clavier à l'écran. Contrairement à Click In Element, la recherche n'est pas limitée aux nœuds cliquables, car un champ éditable n'est pas toujours signalé comme cliquable par l'arbre d'accessibilité ; cela rend hintText (le texte indicatif du champ) un sélecteur particulièrement utile ici, puisqu'un champ vide n'a pas encore de text sur lequel se baser.

N'attend pas l'apparition de l'élément - combinez avec Wait For Element au préalable si le champ pourrait ne pas encore être à l'écran.


Paramètres d'entrée

Paramètre Type Requis Valeurs possibles Compatibilité Android Compatibilité AndroMate Défaut
FillText_textSelector Enum / String (résolvable) Oui text, contentDescription, tooltipText, resourceId, className, hintText, anyOf Android 13 (API 33) -> Android 16 (API 36) 1.1.0 -> 1.1.0 ""
FillText_CompareType Enum / String (résolvable) Oui exactText, startWith, contain Android 13 (API 33) -> Android 16 (API 36) 1.1.0 -> 1.1.0 ""
FillText_Index Entier (résolvable) Non Index base 0 parmi les correspondances Android 13 (API 33) -> Android 16 (API 36) 1.1.0 -> 1.1.0 0
FillText_matchText String (résolvable) Oui La valeur utilisée pour localiser le champ Android 13 (API 33) -> Android 16 (API 36) 1.1.0 -> 1.1.0 ""
FillText_value String (résolvable) Oui Le texte à saisir dans le champ Android 13 (API 33) -> Android 16 (API 36) 1.1.0 -> 1.1.0 ""

Paramètres de sortie

Cette tâche ne produit aucune variable de sortie. Elle retourne un VoidResult en cas de succès.


Exceptions

Code Nom de l'exception Description
SCREEN-AUTOMATOR-ERROR-006 Unsupported Text Selector FillText_textSelector n'est pas une valeur de sélecteur reconnue.
SCREEN-AUTOMATOR-ERROR-010 Screen Automator Service Not Connected Le service d'accessibilité AndroMate n'est pas activé/connecté.
SCREEN-AUTOMATOR-ERROR-011 Screen Automator Action Failed Aucun élément correspondant trouvé, ou ACTION_SET_TEXT refusé par la cible - inclut le sélecteur/compare/index/matchText résolus dans le détail de l'erreur.

Diagramme d'exécution

flowchart TD
    Start([FillText]) --> CheckConnected{Service d'accessibilité\nconnecté ?}
    CheckConnected -->|Non| E1[SCREEN-AUTOMATOR-ERROR-010\nSERVICE_NOT_CONNECTED]
    CheckConnected -->|Oui| Search["Recherche dans l'arbre\n(tout nœud, sans filtre cliquable)"]
    Search --> Found{Correspondance\ntrouvée ?}
    Found -->|Non| E2[SCREEN-AUTOMATOR-ERROR-011\nACTION_FAILED]
    Found -->|Oui| SetText[ACTION_SET_TEXT\navec FillText_value]
    SetText --> Result{A retourné true ?}
    Result -->|Non| E2
    Result -->|Oui| Success([VoidResult])

    E1 --> Error([Exception])
    E2 --> Error

    style Start fill:#e3f2fd
    style Success fill:#c8e6c9
    style Error fill:#ffcdd2
    style SetText fill:#fff9c4
    style Search fill:#f3e5f5

Fonctionnement :

  1. Vérifier la connexion : échoue immédiatement avec SERVICE_NOT_CONNECTED si le service d'accessibilité n'est pas activé.
  2. Rechercher : cherche n'importe où dans l'arbre (pas seulement les nœuds cliquables) une correspondance avec FillText_matchText.
  3. Remplir : exécute ACTION_SET_TEXT avec FillText_value ; non trouvé, ou action refusée, lève ACTION_FAILED.

Exemples de code

Exemple 1 - Remplir un champ nom d'utilisateur par son texte indicatif

{
  "FillText": [
    {
      "id": "1",
      "title": "Saisir le nom d'utilisateur",
      "FillText_textSelector": "hintText",
      "FillText_CompareType": "contain",
      "FillText_Index": 0,
      "FillText_matchText": "Username",
      "FillText_value": "andromate_user"
    }
  ]
}

Détails des paramètres d'entrée

1. Paramètre d'entrée : FillText_textSelector

D'où provient le texte comparé (utilisé pour localiser le champ) - voir Click In Element > ClickInElement_textSelector pour la liste complète des valeurs (les 7 mêmes valeurs, dont anyOf).

Exemple

"FillText_textSelector": "hintText"

2. Paramètre d'entrée : FillText_CompareType

Comment la comparaison est effectuée (insensible à la casse) : exactText, startWith, ou contain.

Exemple

"FillText_CompareType": "contain"

3. Paramètre d'entrée : FillText_Index

Si plusieurs éléments correspondent, sélectionne le n-ième (base 0).

Exemple

"FillText_Index": 0

4. Paramètre d'entrée : FillText_matchText

La valeur comparée au sélecteur pour trouver le champ - pas la valeur saisie dedans (c'est FillText_value).

Exemple

"FillText_matchText": "Username"

5. Paramètre d'entrée : FillText_value

Le texte réellement écrit dans le champ une fois trouvé.

Exemple

"FillText_value": "andromate_user"

Détails des paramètres de sortie

Cette tâche n'a pas de paramètres de sortie.


Exemple JSON complet

{
  "FillText": [
    {
      "id": "1",
      "title": "Remplir le champ mot de passe",
      "FillText_textSelector": "resourceId",
      "FillText_CompareType": "contain",
      "FillText_Index": 0,
      "FillText_matchText": "password_input",
      "FillText_value": "S3cret!"
    }
  ]
}