Méthodes de scroll et swipe
MAJ 5 NOV 2024
1 - Introduction
Il existe 2 types de méthodes pour naviguer sur l'écran :
Scroll
Swipe
Différences
Scroll | Swipe |
|---|---|
Le doigt est posé sur l'écran et glisse maintenu. | Le doigt est posé sur l'écran et glisse sans être maintenu enfoncé le long du défilement. |
S'appuie sur le premier élément de vue "scrollable". | Il n'est pas basé sur des éléments de la vue, mais uniquement sur les coordonnées de l'écran. |
Si vous souhaitez vous rendre à un endroit précis de la page sans que le geste soit important, préférez les méthodes de type "swipe".
2 - Focus sur le Swipe
Le swipe est un glissement du doigt entre le point A et le point B de l'écran.
Les coordonnées des points A et B sont définies en pourcentage de la largeur de l'écran pour l'abscisse et en pourcentage de la hauteur de l'écran pour l'ordonnée :
percStartX : largeur d'écran du point A
percStartY : hauteur d'écran du point A
percEndX : largeur d'écran du point B
percEndY : hauteur d'écran du point B
Exemple avec l'image ci-dessous : A (90%, 50%) et B (10%, 50%).
Ce geste de balayage vers le bas de l'écran peut être effectué par les méthodes GDSL suivantes :
swipeDownward
# swipeDownward(percX, percStartY)
swipeDownward,50,90
# swipeVertical(percStartY, percEndY, percX)
swipeVertical,90,10,50percX par défaut est 50. Les 2 points A et B auront l'absisse 50% : (percStartX = percEndX = 50)
percStartY par défaut swipe des coordonnées A (X 50%, Y 90%) aux coordonnées B (X 50%, Y 10%).
3 - Focus sur le Scroll
Cas des sites web
Pour tous les sites web, l'application Chrome sur le téléphone interprète le site web à l'aide d'une webview.
Pour les sites web, il y a souvent un élément du dump avec la classe "android.webkit.Webview" avec l'information scrollable = true. Cet élément est généralement le premier élément du dump qui est "scrollable".
Nous pouvons alors faire défiler l'écran à l'aide des méthodes de type scroll.
Cas des applications mobiles
Pour les applications, il existe généralement un élément dump de la classe "android.support.v7.widget.RecyclerView" qui peut être scrollé.
4 - Liste des commandes scrollet swipe
5 - Cas d’usage
Voici un diagramme montrant les méthodes qui peuvent être utilisées pour faire défiler l'écran dans la direction souhaitée.
Cas d’usage 1 : Je veux naviguer vers le bas de l'écran
Situation 1 : Je veux juste faire défiler mon écran vers le bas, j'ai donc besoin d'une méthode facile à utiliser et sans paramètres.
Voici les deux méthodes les plus simples :
# Swipe des coordonnées A (X 50%, Y 90%) aux coordonnées B (X 50%, Y 10%)
swipeDownward
# Défilement de l'écran vers le bas
scrollDownwardSituation 2 : Lorsque je swipe, l'automatisation semble cliquer sur un élément au lieu de glisser.
Dans ce cas, vous pouvez déplacer le balayage vers la gauche ou la droite pour que le geste ne soit plus central avec X 50%.
# Swipe des coordonnées (X 30%, Y 90%) aux coordonnées (X 30%, Y 10%)
swipeDownward,30
Situation 3 : Je veux faire défiler l'écran vers le bas en choisissant la longueur de défilement, je n'ai pas besoin d'aller aussi bas que la méthode par défaut.
Plus la différence d'ordonnées entre le point A et le point B est grande, plus l'écran défilera vers le bas.
Exemple
# écart de 50 % entre percStartY (60) et percEndY (10)
swipeDownward,30,60,10
# écart de 10 % entre percStartY (20) et percEndY (10). Le défilement de l'écran
# ira beaucoup moins bas que le précédent swipe
swipeDownward,30,20,10
Situation 4 : Pour mes différentes itérations de test, à chaque fois que je swipe, je n'arrive pas toujours au même endroit sur l'écran, ce qui bloque mon automatisation.
Dans ce cas, il faut utiliser la méthode qui permet de définir complètement le swipe et de modifier la durée du scroll (vitesse de défilement).
# Swipe du point A(X 50%, Y 90%) au point B(X 50%, Y 10%) pendant 1 seconde (1000ms)
swipeVertical,90,10,50,1000Plus le temps de défilement augmente, plus l'action arrivera lentement au même point de l'écran. En effet, une action rapide nécessite plus de traitement sur le téléphone et dépend donc davantage de son occupation au moment du défilement (CPU utilisé, par exemple), ce qui peut entraîner de petites différences entre chaque itération du test.
Cas d’usage 2 : Je veux atteindre un texte à l'écran
Situation 1 : Je veux atteindre le texte en bas de l'écran
# Fait défiler l'écran avec des gestes de swipe jusqu'à atteindre le texte.
# Attention : méthode sensible à la casse
# 10 swipes par défaut, maximum de 30
swipeDownwardToText,Contact
# maximum de 30 swipes
swipeDownwardToText,Contact,30
Situation 2 : Je suis au milieu de l'écran et je veux atteindre le texte avant ou après ma position.
# Défile l'écran jusqu'en haut puis défile vers le bas jusqu'à trouver le texte
scrollToText,Contact
Cas d’usage 3 : Je veux aller en bas de l'écran
scrollDownwardUntilEndCette méthode permet de faire défiler la page jusqu'à 20 fois pour atteindre la fin de la page.
Elle peut être utilisée sans paramètres.
Si cette fonction ne fonctionne pas, cela peut être dû aux facteurs suivants :
Nombre maximal de scrolls atteint
Élément scrollable qui ne défile pas jusqu'au bas de la page
Nombreuses vidéos lancées pendant le défilement.
Dans ce cas, il faut utiliser plusieurs fois les méthodes de balayage pour atteindre le bas de l'écran.
Cas d’usage 4 : Je veux scroller horizontalement vers la droite
# Swipe du point A (90%, 50%) au point B (10%, 50%)
swipeRightward
# Scroll pour faire défiler l'écran à droite
scrollRightward
# Swipe du point A (90%, 30%) au point B (10%, 30%)
swipeRightward,30
# Swipe du point A (90%, 50%) au point B (10%, 50%) pendant 1s (1000ms)
swipeHorizontal,90,10,50,1000Cas d’usage 5 : Je veux scroller horizontalement vers la gauche
# Swipe du point A (10%, 50%) au point B (90%, 50%)
swipeLeftward
# Scroll pour faire défiler l'écran à gauche
scrollLeftward
# Swipe du point A (10%, 30%) au point B (90%, 30%)
swipeRightward,30
# Swipe du point A (10%, 50%) au point B (90%, 50%) pendant 1s (1000ms)
swipeHorizontal,10,90,50,1000Cas d’usage 6 : Je veux scroller verticalement vers le haut
# Swipe du point A (50%, 10%) au point B (50%, 90%)
swipeUpward
# Scroll pour faire défiler l'écran vers le haut
scrollUpward
# Swipe du point A (30%, 10%) au point B (30%, 90%)
swipeUpward,30
# Swipe du point A (10%, 50%) au point B (90%, 50%) pendant 1s (1000ms)
swipeVertical,10,90,50,1000