Télécommander un navigateur avec Playwright, en Python
Martin Kirchgessner, 2024-12-17
Tags : python en_français
A l'occasion de ma présentation au meetup Python grenoblois, le 17 décembre 2024, j'ai fait une démo de Playwright basée sur les liens et exemples suivants. Cette page regroupe mes notes de présentation, et les liens utilisés.
A faire avant
Pour partir d'une install neuve, avec le futur fichier test (vide).
pyenv virtualenv meetup
pyenv activate meetup
pip install pytest-playwright
playwright install
code testmeetup.py
Déroulé
Sondage: qui programme pour du Web ? Connait déjà Selenium ? Playwright ?
Présentation & installation
Playwright est un logiciel sous licence Apache, soutenu par Microsoft.
On suit les instructions d'installation.
Mais pourquoi le test end-to-end
Disons qu'on veut vérifier que quand on cherche "python" à Grenoble dans Meetup, le groupe de ce soir est bien dans les résultats.
On peut lancer un navigateur sur meetup.com, et avec l'inspecteur réseau trouver la requête de recherche correspondant. Mais * ça ne correspond pas au parcours utilisateur, donc gros angle mort * le test va contenir plein de valeurs très liées aux détails d'implémentation, donc instable
Le générateur de code
playwright codegen https://meetup.com/
Attention à choisir le site en français d'abord, et à target Pytest.
A enregistrer dans testmeetup.py
, puis :
pytest testmeetup.py
Revue du test généré
Il utilise les propriétés d'accessibilité ARIA.
Si on retourne sur meetup.com, on peut utiliser les propriétés d'accessibilité dans l'inspecteur Web.
On note les get_by_test_id
.
pytest --headed --slowmo 1000 testmeetup.py
Si on retire la sélection de la langue au début du test... ça ne marche plus. Ce sont des tests sensibles aussi, notamment quand les parties interactives sont un peu vite faites. Donc, parfois, il faut débugger. Et c'est lent, c'est vrai. Mais c'est le test le plus complet !
Mais l'avantage du test par l'accessibilité est que vous pouvez refaire votre CSS ou même réarchitecturer toutes les pages, sans modifier les tests. Et en plus votre site sera accessible, notamment aux malvoyants. Il n'est jamais trop tard pour vous mettre à l'accessiblité, qui un sujet en soi.
Playwright est utilisable aussi pour le scraping sur des sites web qui ne fonctionnent pas autrement.