Fermer

février 7, 2024

Rationaliser la manipulation des tables Web avec les flux Selenium et Java / Blogs / Perficient

Rationaliser la manipulation des tables Web avec les flux Selenium et Java / Blogs / Perficient


Dans le domaine de l’automatisation Web, Selenium est un outil remarquable pour interagir avec les applications Web. Un tri et un filtrage efficaces des données sont essentiels lorsque vous travaillez avec des tables Web. Cet article de blog explore l’utilisation de Selenium en conjonction avec les flux Java pour trier et filtrer efficacement les tables Web, présentant une méthode simplifiée pour manipuler ces tables sur le Web nous aide également à obtenir un code plus concis et optimisé.

Pour en savoir plus sur Streams, vous pouvez lire mon blog précédent, Libérer la puissance des flux Java : simplifier le code avec efficacité.

Comprendre le paysage

Les tableaux Web sont couramment utilisés pour afficher des données structurées sur des pages Web. Qu’il s’agisse d’un site de commerce électronique affichant des informations sur les produits ou d’une plateforme d’analyse de données présentant des métriques, la capacité d’organiser et d’analyser des données tabulaires est fondamentale. Selenium, un outil d’automatisation Web largement utilisé, permet aux développeurs d’interagir avec ces tables Web et d’extraire les informations nécessaires.

Les flux Java, introduits dans Java 8, offrent une manière concise et expressive de traiter les collectes de données. La combinaison de Selenium avec des flux Java peut conduire à un code plus lisible et maintenable, faisant de la tâche de tri et de filtrage des tables Web un processus élégant.

Configuration de l’environnement

Avant de vous plonger dans le code, assurez-vous que vous disposez des outils nécessaires :

  1. Installez le Selenium WebDriver : Téléchargez le WebDriver pour votre navigateur préféré (par exemple, ChromeDriver ou GeckoDriver pour Firefox). Nous pouvons également ajouter des dépendances pour gérer nos pilotes.
  2. Configurer un projet Java : créez un nouveau projet Java dans votre IDE préféré et incluez les bibliothèques Selenium WebDriver dans votre projet.
  3. Ajoutez Java 8 ou une version ultérieure : assurez-vous que votre projet est configuré pour utiliser Java 8 ou une version ultérieure afin de tirer parti des flux Java.

Comprendre le code

Commençons par trier une table Web à l’aide de Java Stream. Supposons que nous ayons un tableau simple avec trois colonnes ayant différentes valeurs dans chacune des colonnes. Lorsque nous cliquons sur la colonne contenant les noms des éléments, la liste est ajustée dans un ordre spécifié. Ce que nous faisons dans ce code, c’est capturer les éléments de la liste et les comparer avec la liste triée à l’aide d’une assertion.

L’extrait de code suivant montre comment trier la table en fonction de la colonne :

import java.util.List;
import java.util.stream.Collectors;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;

import io.github.bonigarcia.wdm.WebDriverManager;

public class WebTableSortingUsingStreams {

    public static void main(String[] args) {
// TODO Auto-generated method stub

//Managing the browser
WebDriverManager.chromedriver().setup();
WebDriver driver = new ChromeDriver();

//Maximizing the browser
driver.manage().window().maximize();

//Navigating to the URL
driver.get("https://rahulshettyacademy.com/seleniumPractise/#/offers");

//Click on Column using the xpath
driver.findElement(By.xpath("//tr/th[1]")).click();

//capture all web elements of the column into list again by using xpath.
List<WebElement> elementsList = driver.findElements(By.xpath("//tr/td[1]"));

//capture text of all webelements into new(original) list, in this we are converting the elements of
//list into a stream format by making the use of .stream method and then mapping them using .map
List<String> originalList = elementsList.stream().map(s-     >s.getText()).collect(Collectors.toList());

//sorting method is used on the original list of step 3  -> sorted list
List<String>sortedList = originalList.stream().sorted().collect(Collectors.toList());

//Now, we use assertion to compare original list vs sorted list (both should look same)
Assert.assertTrue(originalList.equals(sortedList));
    }

}

Dans ce code, nous cliquons sur la colonne pour récupérer les éléments triés, puis nous comparons ces listes triées avec la liste d’origine à l’aide d’une assertion.

Conclusion:

Cela améliore non seulement la lisibilité du code, mais améliore également la maintenabilité, facilitant ainsi l’adaptation aux changements dans la structure des tables Web. À mesure que vous approfondissez le potentiel de Selenium et de Java, envisagez d’incorporer ces techniques dans vos projets d’automatisation Web pour rationaliser la manipulation des tables et débloquer de nouvelles possibilités d’extraction et d’analyse de données.






Source link