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 :

Sélénium

IntelliJ IDEA

ChromeDriver

JDK 8

Configurer IntelliJ Idea pour Selenium

Conditions préalables:

  1. Java est installé
  2. Le sélénium est extrait dans un dossier (contient 2 fichiers et 1 dossier)

Suivez ces étapes pour configurer IntelliJ Idea for Selenium.

  1. Cliquez sur "Nouveau projet" .
  2. Choisissez Java <Application "Hello World"
  3. Tapez le nom du projet et créez-le.

Votre écran devrait ressembler à ceci entrer la description de l'image ici

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 entrer la description de l'image ici

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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow