DOCKER

Chrome headless (Partie 2) : Tester la géolocalisation sans prise de tête

Sylvain Touret, Tech Lead @DeliaTechnologies
Sylvain Touret, Tech Lead @DeliaTechnologies
January 27, 2023
8 min

Préambule

Ah vous revoilà?

Alors si vous avez survécu à la première partie de la série, bienvenue dans la deuxième. Ce coup ci, je voulais plus m'intéresser au mode de pensée qu'il faut avoir pour faire du headless.

Principalement, il faut avoir à l'esprit que toute interaction manuelle que l'on fait sans réfléchir sur notre navigateur internet on va devoir le faire en code.

Le moindre pop up que l'on ne regarde plus en tant qu'utilisateur va être là pour vous pourrir la vie en mode headless.

On démarre?

Géolocalisation

On va repartir de notre librairie python de la dernière fois pour ajouter la géolocalisation

En temps normal, la géolocalisation doit être approuvée par l'utilisateur pour que Chrome regarde sa position. Il y a plusieurs approches à ce problème, mais pour moi je voulais pouvoir définir pour chaque test librement la position de l'utilisateur.

Pour le contexte, la page web que je testais permettait de faire une recherche d'un docteur dans un rayon de x km autour d'une position soit en texte, soit géolocalisé. Pour garantir que les résultats de recherche ne soient pas vides et répétables (on fait du testing quand même), je souhaitais pouvoir imposer la position en centre ville d'une grande ville.

L'heure est venue pour nous d'écrire cette fonction dans notre librairie. A vos crayons.

Paramètres

Commençons par les paramètres de notre fonction :

On va voir besoin de :

Webdriver

Avant toute chose, on va devoir modifier le webdriver en cours d'utilisation par les tests. Pour cela on va utiliser robotframework et notamment la librairie Builtin qui nous permet d'accéder à ce fameux driver.

Est-ce la méthode la plus propre? Aucune idée. Est ce que cela marche? Oui

Configuration Webdriver

En tout cas maintenant que l'on a ce webdriver on va pouvoir configurer ce qui nous intéresse.

Première chose, on souhaite autoriser la géolocalisation pour l'url en paramètres :

Ensuite, on veut dire à chrome que notre position actuelle est celle que l'on veut définir grâce à nos paramètres, ce qui donne :

Et paf, nous voilà où on souhaite.

https://media.giphy.com/media/rDroB384ydCvK/giphy.gif

Résultat final

Voilà la fonction complète :

Mise en situation

Lors de nos tests, on va pouvoir maintenant utiliser notre nouveau keyword flambant neuf dans notre test existant. Pour prouver un peu le bon fonctionnement, on va s’en servir en mode normal (pas headless pour le coup).

Pour se simplifier la tâche on prend un screenshot de la page, ce qui nous donne :

On voit bien les coordonnées demandées en haut à droite.

Voici le lien Github.

D'autres articles pour vous

Tous nos articles →
photo camille

Envie de rejoindre l'aventure ?

Réservez un moment avec notre équipe RH en quelques clics, pour voir ensemble le meilleur moyen de nous rejoindre. Vous avez des questions sur Delia Technologies ? C'est le moment de les poser !

Rencontrer notre équipe