selenium
Premier projet en sélénium avec Java
Recherche…
Introduction
Ceci est une introduction à Selenium, en utilisant Java. Bien que nous ne nous attendions pas à ce que vous sachiez quoi que ce soit concernant Selenium, vous devez avoir des connaissances préalables sur Java pour suivre ce cours.
Liens de téléchargement :
Configurer IntelliJ Idea pour Selenium
Conditions préalables:
- Java est installé
- Le sélénium est extrait dans un dossier (contient 2 fichiers et 1 dossier)
Suivez ces étapes pour configurer IntelliJ Idea for Selenium.
- Cliquez sur "Nouveau projet" .
- Choisissez Java <Application "Hello World"
- Tapez le nom du projet et créez-le.
Votre écran devrait ressembler à ceci
Maintenant, allez à
File < Project Structure < Modules < Dependencies
Cliquez sur l'icône verte plus ( +
) et choisissez Bibliothèque. Ensuite, accédez au dossier Selenium extrait et ajoutez " selenium-java 2.4.0.jar ". Après l'ajout de ceci, cliquez à nouveau sur l'icône verte plus ( +
) et choisissez maintenant "Répertoire". Cette fois, localisez le dossier libs de Selenium et cliquez sur ok tout en le sélectionnant.
À la fin, votre structure de projet devrait ressembler à ceci
Maintenant, cliquez sur OK et vous êtes tous prêts.
Configurer ChromeDriver
Conditions préalables: ChromeDriver est téléchargé
Copiez le code suivant dans votre classe.
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
}
Si vous utilisez Linux, indiquez le chemin vers le binaire ChromeDriver.
Ouvrir un site Web en utilisant Selenium
Nous utilisons la méthode get
pour accéder à un site Web. Par exemple, cela ouvrirait google
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https:www.google.com");
Thread.sleep(3000); //wait for 3 seconds
driver.quit(); //close Chrome
}
driver.quit()
ferme le navigateur. Pour créer un délai, nous utilisons Thread.sleep(3000)
.
Obtenir des éléments dans Selenium
Chaque élément HTML dans Selenium est appelé WebElement
. Par exemple, une p
étiquette serait un WebElement
, une a
étiquette serait un WebElement
, etc. Considérez la structure HTML suivante:
<a id="link1" href="https://www.google.com">google</a>
<p class="p1">
This is a paragraph
</p>
Maintenant, si nous voulions obtenir le a
étiquette, nous pourrions faire
WebElement link = driver.findElement(By.id("link1"));
Maintenant, nous pouvons cliquer sur ceci, en
link.click();
Prenons un autre exemple. Si nous voulions le texte de la balise p
, c’est -à- dire " Ceci est un paragraphe ", nous pouvons le faire
WebElement p = driver.findElement(By.className("p1"));
System.out.println(p.getText());
Nous pouvons également obtenir des éléments par balises, comme
WebElement tag = driver.findElement(By.tagName("a"));
Exemple de travail dans le sélénium
Maintenant que nous connaissons les bases du sélénium, nous pouvons réaliser notre propre projet. Pour cet exemple, nous allons créer un programme qui détecte les dernières questions sur le dépassement de pile.
Nous commençons facilement, permet d'ouvrir le débordement de la pile.
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https:stackoverflow.com");
Thread.sleep(3000);
driver.quit();
}
Maintenant, si vous regardez la source de la page, vous trouvez que toutes les questions, sont a
balises, avec une className question-hyperlink
. Cependant, comme il y a plusieurs questions, nous utilisons une List
de WebElement
au lieu de WebElement
. Ainsi, nous pouvons faire
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "path to chromedriver\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https:stackoverflow.com");
List<WebElement> list = driver.findElements(By.className("question-hyperlink"));
}
Maintenant, nous avons besoin d'obtenir le href
attribut de l' a
balise, qui a le lien de la question. Pour ce faire, nous pouvons utiliser getAttribute("href")
sur chaque WebElement
, comme
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "path to chromedriver\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https:stackoverflow.com");
List<WebElement> list = driver.findElements(By.className("question-hyperlink"));
System.out.println(list.size());
list.forEach(e->System.out.println(e.getAttribute("href")));
driver.quit();
}
Cela affiche les liens des questions principales sur le débordement de pile.
Obtenir les attributs des WebElements dans Selenium
Pour obtenir l'attribut d'un WebElement
, nous utilisons getAttribute
sur cet objet WebElement
. Par exemple, considérez la balise HTML suivante
<a id="click" href="https://www.google.com">
Nous pouvons trouver l'attribut href
l'élément par
WebElement e = driver.findElement(By.id("click"));
System.out.println(e.getAttribute("href")); //prints https://www.google.com