WebDriver
WebDriver est une interface de contrôle à distance qui permet l'introspection et le contrôle des agents utilisateurs. Il fournit un protocole filaire indépendant de la plate-forme et du langage, permettant aux programmes hors processus de contrôler à distance le comportement des navigateurs web.
La possibilité d'écrire des jeux d'instructions pouvant être exécutés de manière interchangeable dans de nombreux navigateurs sur différentes plateformes est essentielle pour offrir une expérience cohérente aux utilisateur·ice·s. Avec la nouvelle vague de développements sur la plateforme web, la diversité croissante des appareils et les exigences en matière d'interopérabilité réelle entre les technologies, WebDriver fournit des outils pour les tests en navigateur croisé.
Il fournit un ensemble d'interfaces permettant de découvrir et de manipuler des éléments DOM dans des documents Web et de contrôler le comportement d'un agent utilisateur. Il est principalement destiné à permettre aux auteurs Web d'écrire des tests qui automatisent un agent utilisateur à partir d'un processus de contrôle distinct, mais peut également être utilisé de manière à permettre à des scripts intégrés au navigateur de contrôler un navigateur — éventuellement distinct.
Utilisation
Alors, que vous permet de faire WebDriver et à quoi ressemble-t-il ? Étant donné que WebDriver est indépendant du langage de programmation, la réponse à cette question dépend du client WebDriver que vous utilisez et du langage choisi.
Mais si vous utilisez un client populaire écrit en Python, votre interaction avec WebDriver pourrait ressembler à ceci :
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.expected_conditions import presence_of_element_located
with webdriver.Firefox() as driver:
driver.get("https://google.com/ncr")
wait = WebDriverWait(driver, 10)
driver.find_element(By.NAME, "q").send_keys(f"fromage{Keys.RETURN}")
wait.until(presence_of_element_located((By.XPATH, '//*[@id="rcnt"]')))
results = driver.find_elements(By.XPATH, "//a[@href]")
for i, elem in enumerate(results):
print(f'#{i} {elem.text} ({elem.get_attribute("href")})')
Cela pourrait produire un résultat similaire à celui-ci :
#1 Fromage - Wikipedia (https://fr.wikipedia.org/wiki/Fromage)
Référence
La référence WebDriver fournit des informations détaillées sur l'API WebDriver, notamment les commandes disponibles, les fonctionnalités et les erreurs.