WebElement dans Selenium
โก Rรฉsumรฉ intelligent
WebElement dans Selenium reprรฉsente chaque contrรดle de formulaire comme un objet programmable, permettant aux testeurs d'interagir avec les champs de texte, les cases ร cocher, les boutons radio et les รฉlรฉments de soumission ร l'aide des mรฉthodes findElement, sendKeys, click, clear et submit. Java exemples de code.

WebElement dans Selenium
Les formulaires sont des รฉlรฉments web fondamentaux qui permettent de recueillir des informations auprรจs des visiteurs d'un site web. Ils comprennent diffรฉrents contrรดles d'interface graphique tels que des zones de texte, des champs de mot de passe, des cases ร cocher, des boutons radio, des listes dรฉroulantes et des champs de saisie de fichiers.
Ce tutoriel explique comment accรฉder ร chaque รฉlรฉment de formulaire en utilisant Selenium WebDriver avec Java. Selenium encapsule chaque รฉlรฉment de formulaire en tant qu'objet de WebElement. Elle fournit une API permettant de localiser les รฉlรฉments et d'interagir avec eux, notamment en saisissant du texte, en cliquant sur des boutons et en soumettant des formulaires. Les sections suivantes dรฉtaillent les mรฉthodes disponibles pour chaque รฉlรฉment de formulaire.
Introduction ร WebElement, findElement(), findElements()
Selenium WebDriver reprรฉsente un รฉlรฉment de formulaire simple comme un objet de รlรฉment Web.
WebDriver identifie les รฉlรฉments de formulaire ร l'aide de diffรฉrentes propriรฉtรฉs de l'รฉlรฉment Web, notamment l'ID, le nom et la classe. XPath, Nom de la balise, sรฉlecteurs CSS et texte du lien.
WebDriver propose les deux mรฉthodes WebElement suivantes pour trouver des รฉlรฉments :
- trouverรlรฉment() โ trouve un seul รฉlรฉment web et le renvoie sous forme de WebElement Selenium objet.
- findElements() โ renvoie une liste d'objets WebElement correspondant aux critรจres du localisateur.
L'exemple ci-dessous montre comment rรฉcupรฉrer un รฉlรฉment unique, un champ texte sur une page web, sous forme d'objet WebElement ร l'aide de la mรฉthode findElement(). La mรฉthode findElements() permettant de rechercher plusieurs รฉlรฉments est abordรฉe dans les tutoriels suivants.
รtape 1) Importez le package nรฉcessaire ร la crรฉation d'objets WebElement.
รtape 2) Appelez la mรฉthode findElement() disponible sur la classe WebDriver pour rรฉcupรฉrer un objet WebElement, comme indiquรฉ ci-dessous.
Selenium Texte de saisie
Les zones de saisie font rรฉfรฉrence ร l'un de ces deux types :
- Champs de texte - Selenium Des champs de saisie qui acceptent les valeurs saisies et les affichent exactement telles qu'elles ont รฉtรฉ saisies.
- Champs de mot de passe โ des zones de texte qui acceptent les valeurs saisies mais les masquent sous forme d'une sรฉrie de caractรจres spรฉciaux (gรฉnรฉralement des points ou des astรฉrisques) afin de dissimuler les donnรฉes sensibles.
Des localisateurs
La mรฉthode `findElement()` prend un paramรจtre : un localisateur pointant vers lโรฉlรฉment. Diffรฉrents localisateurs, tels que `By.id()`, `By.name()`, `By.xpath()` et `By.cssSelector()`, permettent de trouver des รฉlรฉments sur la page grรขce ร leurs propriรฉtรฉs, comme leur identifiant, leur nom ou leur chemin.
Vous pouvez utiliser des plugins comme FirePath pour obtenir l'identifiant, le XPath et d'autres valeurs de localisation pour les รฉlรฉments.
Utilisation du site exemple https://demo.guru99.com/test/login.htmlLe code ci-dessous localise le champ de texte ยซ Adresse e-mail ยป ร l'aide du localisateur d'identifiant et le champ ยซ Mot de passe ยป ร l'aide du localisateur de nom.
- Le champ de texte de l'adresse e-mail est localisรฉ par son identifiant.
- Le champ Mot de passe se trouve par nom.
envoyer les clรฉs dans Selenium
envoyerKeys() dans Selenium Cette mรฉthode permet de saisir du contenu modifiable dans les champs texte et mot de passe lors de l'exรฉcution de tests. Ces champs sont identifiรฉs par des localisateurs tels que le nom, la classe et l'identifiant. La mรฉthode est disponible sur l'objet WebElement. Contrairement ร la mรฉthode de type, sendKeys() ne remplace pas le texte existant dans une zone de texte.
Comment saisir du texte dans Selenium
Pour saisir du texte dans les champs de texte et les champs de mot de passe, la mรฉthode sendKeys() est disponible sur l'รฉlรฉment WebElement. Selenium.
En utilisant le mรชme exemple de https://demo.guru99.com/test/login.html, l'extrait de code ci-dessous localise le champ de texte et le champ de mot de passe et y saisit du texte. Selenium.
- Trouvez le champ de texte ยซ Adresse e-mail ยป ร l'aide du localisateur d'identifiants.
- Trouvez le champ ยซ Mot de passe ยป ร lโaide du localisateur de noms.
- Saisissez du texte dans ยซ Adresse e-mail ยป ร l'aide de la touche Selenium Mรฉthode sendKeys.
- Entrez un mot de passe dans le champ ยซ Mot de passe ยป en utilisant la mรฉthode sendKeys().
Suppression de valeurs en entrรฉe Boxes
Le clair() Cette mรฉthode supprime le texte contenu dans une zone de saisie. Cette mรฉthode ne nรฉcessite aucun paramรจtre. L'extrait de code ci-dessous efface le texte des champs Adresse รฉlectronique ou Mot de passe.
Selenium Cliquez sur les boutons
Le Selenium Le bouton de clic est accessible via la mรฉthode click().
Dans l'exemple ci-dessus
- Trouvez le bouton pour vous connecter.
- Cliquez sur le bouton ยซ Se connecter ยป sur la page de connexion du site pour vous authentifier.
Selenium Boutons Soumettre
Les boutons d'envoi transmettent le formulaire complet au serveur. Vous pouvez soit appeler la mรฉthode click() sur l'รฉlรฉment WebElement, comme indiquรฉ ci-dessus, soit utiliser la mรฉthode submit() sur n'importe quel รฉlรฉment du formulaire ou sur le bouton d'envoi lui-mรชme.
Lorsque la fonction submit() est utilisรฉe, WebDriver consulte le DOM pour identifier le formulaire auquel appartient l'รฉlรฉment, puis dรฉclenche sa fonction de soumission.
Code
Voici le code complet et fonctionnel.
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.*;
public class Form {
public static void main(String[] args) {
// declaration and instantiation of objects/variables
System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
String baseUrl = "https://demo.guru99.com/test/login.html";
driver.get(baseUrl);
// Get the WebElement corresponding to the Email Address(TextField)
WebElement email = driver.findElement(By.id("email"));
// Get the WebElement corresponding to the Password Field
WebElement password = driver.findElement(By.name("passwd"));
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
System.out.println("Text Field Set");
// Deleting values in the text box
email.clear();
password.clear();
System.out.println("Text Field Cleared");
// Find the submit button
WebElement login = driver.findElement(By.id("SubmitLogin"));
// Using click method to submit form
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
login.click();
System.out.println("Login Done with Click");
// Using submit method to submit the form. Submit used on password field
driver.get(baseUrl);
driver.findElement(By.id("email")).sendKeys("abcd@gmail.com");
driver.findElement(By.name("passwd")).sendKeys("abcdefghlkjl");
driver.findElement(By.id("SubmitLogin")).submit();
System.out.println("Login Done with Submit");
// driver.close();
}
}
Dรฉpannage
Si vous rencontrez une exception NoSuchElementException() lors de la recherche d'รฉlรฉments, cela signifie que l'รฉlรฉment n'est pas prรฉsent sur la page au moment oรน WebDriver y a accรฉdรฉ.
- Revรฉrifiez votre localisateur ร l'aide de FirePath ou de l'option ยซ Inspecter l'รฉlรฉment ยป dans Chrome.
- Vรฉrifiez si la valeur utilisรฉe dans le code diffรจre de la valeur actuelle de l'รฉlรฉment affichรฉe dans FirePath.
- Certains attributs sont dynamiques pour certains รฉlรฉments. Si une valeur change dynamiquement, utilisez `By.xpath()` ou `By.cssSelector()`, qui sont plus fiables mais lรฉgรจrement plus complexes.
- Il arrive que le problรจme soit liรฉ ร une condition d'attente ; WebDriver peut exรฉcuter le code avant que la page ait fini de se charger.
- Ajoutez une attente avant findElement() en utilisant des attentes implicites ou explicites.
Rรฉsumรฉ
- Le tableau ci-dessous rรฉcapitule les commandes permettant d'accรฉder ร chaque type d'รฉlรฉment mentionnรฉ ci-dessus.
| รlรฉment | Command | Description |
|---|---|---|
| Entrรฉe Box | sendKeys () | Utilisรฉ pour saisir des valeurs dans des zones de texte. |
| clair() | Utilisรฉ pour effacer la valeur actuelle des champs de texte. | |
| Liens | Cliquez sur() | Permet de cliquer sur le lien et d'attendre que la page se charge complรจtement avant de passer ร la commande suivante. |
| Bouton Soumettre | nous faire parvenir() | Utilisรฉ pour soumettre le formulaire en dรฉclenchant le gestionnaire de soumission du formulaire parent. |
- WebDriver permet la sรฉlection de plusieurs options dans un รฉlรฉment SELECT multiple.
- Vous pouvez utiliser la mรฉthode submit() sur n'importe quel รฉlรฉment du formulaire. WebDriver dรฉclenche automatiquement la fonction submit du formulaire auquel appartient l'รฉlรฉment.






