Commandes de protocole
WebdriverIO est un cadre d'automatisation qui s'appuie sur divers protocoles d'automatisation pour contrôler un agent distant, par exemple pour un navigateur, un appareil mobile ou une télévision. En fonction de l'appareil distant, différents protocoles entrent en jeu. Ces commandes sont affectées à l'objet Browser ou Element en fonction des informations de session par le serveur distant (par exemple, le pilote du navigateur).
En interne, WebdriverIO utilise des commandes de protocole pour presque toutes les interactions avec l'agent distant. Cependant, des commandes supplémentaires affectées à l'objet Browser ou Element simplifient l'utilisation de WebdriverIO, par exemple, obtenir le texte d'un élément à l'aide de commandes de protocole ressemblerait à ceci :
const searchInput = await browser.findElement('css selector', '#lst-ib')
await client.getElementText(searchInput['element-6066-11e4-a52e-4f735466cecf'])
En utilisant les commandes pratiques de l'objet Browser ou Element , cela peut être réduit à :
$('#lst-ib').getText()
La section suivante explique chaque protocole individuel.
Protocole WebDriver
Le protocole WebDriver est une norme Web pour l'automatisation du navigateur. Contrairement à certains autres outils E2E, il garantit que l'automatisation peut être effectuée sur le navigateur réel utilisé par vos utilisateurs, par exemple Firefox, Safari et Chrome et les navigateurs basés sur Chromium comme Edge, et pas seulement sur les moteurs de navigateur, par exemple WebKit, qui sont très différent.
L'avantage d'utiliser le protocole WebDriver par opposition aux protocoles de débogage comme Chrome DevTools est que vous disposez d'un ensemble spécifique de commandes qui permettent d'interagir avec le navigateur de la même manière sur tous les navigateurs, ce qui réduit le risque de flakiness. Furthermore offers this protocol abilities for massive scalability by using cloud vendors such as Sauce Labs, BrowserStack and others.
Protocole WebDriver Bidi
Le protocole WebDriver Bidi est la deuxième génération du protocole et est actuellement en cours d'élaboration par la plupart des fournisseurs de navigateurs. Par rapport à son prédécesseur, le protocole prend en charge une communication bidirectionnelle (d'où "Bidi") entre le framework et l'appareil distant. Il introduit en outre des primitives supplémentaires pour une meilleure introspection du navigateur afin de mieux automatiser les applications Web modernes dans le navigateur.
Étant donné que ce protocole est actuellement en cours d'