Aller au contenu

Tâche Is Element Exist

Résumé

  • Nom interne : IsElementExist
  • Catégorie : Android UI
  • Objectif : Vérifier si un élément correspondant à un sélecteur est actuellement à l'écran. Oriente le workflow - true si trouvé, false sinon.
  • Type de tâche : Condition

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 Is Element Exist effectue une vérification unique et immédiate de l'arbre d'accessibilité pour un élément correspondant à un sélecteur, et oriente le workflow en conséquence - contrairement aux tâches d'action de ce groupe (Click In Element, Fill Text, ...), un résultat "non trouvé" ici est un résultat normal (la branche false), pas une exception levée. C'est ce qui en fait une tâche de type Condition plutôt que Normal.

La recherche n'est pas limitée aux nœuds cliquables - elle peut détecter n'importe quel élément, selon la même règle utilisée par Wait For Element et Scroll To Element, simplement sans la boucle de sondage.


Paramètres d'entrée

Paramètre Type Requis Valeurs possibles Compatibilité Android Compatibilité AndroMate Défaut
IsElementExist_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 ""
IsElementExist_CompareType Enum / String (résolvable) Oui exactText, startWith, contain Android 13 (API 33) -> Android 16 (API 36) 1.1.0 -> 1.1.0 ""
IsElementExist_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
IsElementExist_matchText String (résolvable) Oui La valeur à faire correspondre Android 13 (API 33) -> Android 16 (API 36) 1.1.0 -> 1.1.0 ""

Paramètres de sortie

C'est une tâche de type Condition - elle ne stocke pas de valeur. Elle oriente plutôt l'exécution du workflow :

Condition Prochaine étape
Un élément correspondant au sélecteur est trouvé Branche true
Aucun élément correspondant n'est trouvé Branche false

Exceptions

Code Nom de l'exception Description
SCREEN-AUTOMATOR-ERROR-006 Unsupported Text Selector IsElementExist_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é.

Note : l'absence d'un élément n'est pas une erreur - c'est la branche false.


Diagramme d'exécution

flowchart TD
    Start([IsElementExist]) --> 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)"]
    Search --> Found{Correspondance\ntrouvée ?}
    Found -->|Oui| TrueBranch([Branche true])
    Found -->|Non| FalseBranch([Branche false])

    E1 --> Error([Exception])

    style Start fill:#e3f2fd
    style TrueBranch fill:#c8e6c9
    style FalseBranch fill:#ffcdd2
    style Error fill:#ffcdd2
    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 une fois : cherche n'importe où dans l'arbre une correspondance avec IsElementExist_matchText, sans sondage.
  3. Brancher : true si trouvé, false sinon.

Exemples de code

Exemple 1 - Vérifier la présence d'un bouton "Skip"

{
  "IsElementExist": [
    {
      "id": "1",
      "title": "Le bouton Skip est-il présent ?",
      "IsElementExist_textSelector": "text",
      "IsElementExist_CompareType": "exactText",
      "IsElementExist_Index": 0,
      "IsElementExist_matchText": "Skip"
    }
  ]
}

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

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

Mêmes 7 valeurs que Click In Element > ClickInElement_textSelector, dont anyOf.

Exemple

"IsElementExist_textSelector": "text"

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

exactText, startWith, ou contain (insensible à la casse).

Exemple

"IsElementExist_CompareType": "exactText"

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

Si plusieurs éléments correspondent, sélectionne le n-ième (base 0) - surtout pertinent avec contain/startWith.

Exemple

"IsElementExist_Index": 0

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

La valeur à faire correspondre.

Exemple

"IsElementExist_matchText": "Skip"

Détails des paramètres de sortie

C'est une tâche de type Condition - elle ne stocke aucune variable de sortie. Le résultat pilote le branchement du workflow :

Branche true

Prise lorsqu'un élément correspondant au sélecteur/compare/index est actuellement à l'écran.

Branche false

Prise lorsqu'aucun élément de ce type n'est trouvé.


Exemple JSON complet

{
  "IsElementExist": [
    {
      "id": "1",
      "title": "Le bouton Skip est-il présent ?",
      "IsElementExist_textSelector": "text",
      "IsElementExist_CompareType": "exactText",
      "IsElementExist_Index": 0,
      "IsElementExist_matchText": "Skip"
    }
  ]
}