Selenium
1. Introduction
Selenium est un outil d’automatisation de navigateur web. Il permet donc d’écrire, de manière plus ou moins assistée, des scripts dont l’exécution réalisera automatiquement des actions dans un navigateur web : visiter une page, cliquer sur un lien, remplir un formulaire, etc. et de récupérer les résultats de ces actions.
WebDriver est inclus dans Selenium. Nous allons l’utiliser dans la suite.
WebDriver est basé sur un modèle client-serveur. Un client de test envoie des "commandes" via des requêtes HTTP à un serveur WebDriver après initialisation d’une session. Ce dernier distribue les commandes auprès des drivers des navigateurs concernés. Ces drivers exécutent les commandes sur les navigateurs en question via des mécanismes d’automatisation internes, de l’OS ou du JS. C’est en réalité plus compliqué que cela, car ces drivers peuvent eux-mêmes être des serveurs WebDriver (Internet Explorer), communiquer via des web sockets (Safari), etc. Le driver n’est pas nécessairement un binaire, les drivers de Firefox et de Safari sont des extensions du navigateur par exemple.
Par défaut, les navigateurs et leurs drivers doivent être disponibles sur la même machine que le serveur WebDriver (nous verrons plus tard qu’il est possible de faire autrement). Mais grâce à l’architecture client-serveur...