A propos/About RSS Tags

[Insérez un titre ici]


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.