Problèmes fréquemment rencontrés

La fonction scrollToEnd ne scrolle pas jusqu'à la fin de la page

Cela peut être lié aux éléments suivants :

  • Nombre maximum de scroll atteint

  • Element scrollable qui ne va pas jusqu’en bas de la page

  • Nombreuses vidéos qui se lancent quand on scrolle

Solution 1 : Utiliser plusieurs fois la fonction swipeVertical à la place.

 

La fonction clickByClass ne trouve pas ma classe css sur mon site web ou ma web view

Pour l'automatisation d'un site web, la commande clickByClass est à proscrire pour rechercher les classes CSS. Le framework d’automatisation est basé sur uiautomator. Cette commande permet de cliquer sur un élément avec une classe android (exemple android.widget.EditText ou android.widget.Button ou android.view.View). Il ne faut pas confondre ceci avec les classes CSS des sites web ou web view.
Lorsque vous lancez une mesure et que vous avez une erreur, vous avez un fichier dump.uix dans votre rapport de test. Celui-ci contient les différents objets android que l'application Chrome utilise pour afficher votre site web. Vous pouvez alors rechercher des éléments soit par id, text ou description. Vous pouvez alors utiliser des commandes comme clickById, clickByText, waitUntilText, waitUntilTextBeforeClick …. 

 
La méthode ‘browserPrepareAndOpenForReference’ ne fonctionne pas sur mon téléphone local

Cette méthode est un peu particulière et est seulement utile pour préparer le téléphone pour faire de la mesure. Elle ne marchera pas forcément sur toutes les versions de chrome et version d’android. Si vous utilisez votre propre téléphone pour mettre au point vos tests GDSL, vous pouvez préparer chrome manuellement sur votre téléphone en fermant tous les onglets puis en fermant chrome. Ensuite vous pouvez remplacer la méthode ‘browserPrepareAndOpenForReference’ par la méthode ‘launchBrowser’ dans votre script GDSL. Cette méthode fera une simple ouverture de chrome sans préparation.

Attention, en revanche lorsque vous allez envoyer vos tests sur le TestBench distant pour avoir des mesures, il faudra bien penser à remettre cette méthode ‘browserPrepareAndOpenForReference’ dans votre script GDSL.

La commande Ping du CLI (gspt) ne fonctionne pas

Il est probable que votre réseau nécessite la configuration d’ un proxy pour accéder à Internet. Il se peut par exemple que cela fonctionne chez vous mais pas à votre bureau. Pour s’assurer que c’est votre réseau d’entreprise qui fait le blocage, vous pouvez faire un partage de connexion avec votre téléphone pour que votre PC n’utilise plus le réseau de votre bureau et relancez la commande ‘gspt ping’. Si la commande ping ne marche toujours pas, le problème est ailleurs. Si la commande ping fonctionne c’est qu’il faudra configurer le CLI avec le proxy.

La documentation pour configurer le proxy pour le CLI est ici CLI dans la partie ‘Optional proxy configuration’

UIAutomatorviewer n’est pas présent dans le dossier Android/Sdk

  • Dans Android Studio, cliquer sur Menu Tools > SDK Manager

  • Aller dans l'onglet SDK tools, décocher la case "Hide Obsolete Packages"

  • Cocher Android SDK Tools et installer la version 26.1.1

Pour lancer uiautomatorviewer, ouvrir un terminal de commande et aller dans le répertoire $ANDROID_HOME/tools/bin et taper le nom de l'éxécutable présent dans le répertoire (uiautomatorviewer ou uiautomatorviewer.bat en fonction de votre OS …)

 

UIAutomator a besoin de la version 8 de Java par défaut pour fonctionner.

Si vous avez une version de java > 8, et que vous avez une erreur dans la commande précédente, vous pouvez ouvrir un terminal de commande et taper la commande suivante qui fonctionnera dans n’importe quel dossier

java -Xmx1600M -Dcom.android.uiautomator.bindir="$ANDROID_HOME/tools" -cp "$ANDROID_HOME/tools/lib/x86_64/swt.jar":"$ANDROID_HOME/tools/lib/*" com.android.uiautomator.UiAutomatorViewer

ANDROID_HOME : est une variable d’environnement de votre système d’exploitation pointant vers le path du SDK android. Si cette variable ne fonctionne pas, vous pouvez la remplacer par le path complet sur le SDK android