Fermer

juin 22, 2022

Le sous-ensemble de Selenium Webdriver

Le sous-ensemble de Selenium Webdriver


Selenide est un framework d’automatisation de test basé sur Selenium WebDriver. Il est open-source, gratuit, stable et, surtout, fournit une API simple. Il vous aide à gagner du temps lors de l’écriture et du débogage du code. L’aspect le plus agréable est que vous n’avez pas besoin de mémoriser toutes les méthodes ou de lire la documentation ; vous devez commencer à taper, et l’IDE continuera à recommander la solution la plus probable.

Sélénium Webdriver Vs Selenide

Différence entre le lénide et le sélénium

Pilote Web Selenium est un excellent outil; cependant, ce n’est pas un outil de test. C’est un outil de manipulation du navigateur.

Séléniure est un outil de test automatisé (construit sur Selenium WebDriver).

Comment configurer Selenide :

Il vous suffit d’ajouter un jar/dépendance dans votre projet.

com.codeborne

séléniure

5.6.0

Nous allons maintenant voir comment Selenide interagit avec les pilotes.

Dans Selenide, vous n’avez pas besoin d’écrire le code à l’aide d’une instance de pilote. Je sais que vous trouverez cela comme une blague sans aucun exemple de la façon dont cela pourrait être possible, mais oui, c’est vrai.

Tous les pilotes des navigateurs les plus courants sont fournis avec selenide.

En sélénium pour utiliser un navigateur Chrome, nous devons écrire,

System.setProperty(« webdriver.chrome.driver », « ./driver/chromedriver.exe »);

Pilote WebDriver = nouveau ChromeDriver();

driver.get(« https://www.examplepoint.com/index.htm »);

Mais en séléniure, il suffit d’écrire ouvrir(« https://www.examplepoint.com/index.htm »);

Avec une seule ligne de code, selenide ouvre et ferme le navigateur Chrome une fois la procédure terminée.

Si vous souhaitez utiliser Firefox, il vous propose plusieurs façons, telles que :

  • navigateur=”firefox”;
  • setProperty(« sélénide.navigateur », « firefox »);
  • mvn clean install -Dselenide.browser=”firefox”

Sinon, vous pouvez également utiliser votre ancien code Selenium. C’est ça. Comparé à Selenium, c’est beaucoup plus simple.

Plusieurs méthodes sont intégrées dans Selenide. Si vous avez de l’expérience avec Selenium, cet outil vous sera bénéfique.

Avantages de Séléniure:

Les avantages de Selenide sont :

  1. Selenide rend le test du testeur stable en résolvant tous les problèmes d’Ajax et de synchronisation.
  2. Il fournit une API concise pour utiliser Selenium Webdriver dans les tests d’interface utilisateur.
  3. Selenide nous aide à écrire du code intelligent.
  4. Il a un Webdriver transparent.
  5. Selenide a des méthodes pratiques et un support Ajax.
  6. Selenide offre également la possibilité de prendre automatiquement des captures d’écran.

Passons en revue quelques-uns des avantages en bref.

  1. Pilote Web transparent : Vous n’avez pas besoin d’utiliser WebDriver directement. Selenide démarrera et fermera automatiquement le navigateur chaque fois que nécessaire.
  2. Méthodes de commodité :Selenide fournit une API concise qui rend vos tests plus courts et plus lisibles. Selenide dispose de méthodes pratiques pour utiliser des contrôles tels que les champs de texte, les boutons radio, les zones de sélection, la recherche d’éléments par texte, etc. $(By.name(« user.gender »)).selectRadio(« female »);$(« #user. preferredLayout »).selectOption(« plain »);$(« #user.securityQuestion »).selectOptionByText(« Quel est le nom de mon chat ? »);
  3. Prise en charge d’Ajax :Lors du test d’applications Ajax, nous devons souvent attendre qu’un élément change d’état. Selenide a une méthode intégrée pour l’attente. L’une des méthodes suivantes attend jusqu’à ce que l’événement décrit se produise. Le délai d’attente par défaut est de 4 secondes.$(“#sujet”).devrait(apparaître);$(“#sujet”).devraitÊtre(visible);$(“.message”).devraitPas(texte(“La page est en cours de chargement… ”));$(“.error”).devrait(disparaître);
  4. Captures d’écran automatisées : Selenide prendra automatiquement une capture d’écran lorsque votre test échoue. Vous n’avez rien à faire à ce sujet. Vous pouvez trouver vos captures d’écran dans votre projet lui-même ; c’est le chemin où vous pouvez trouver la capture d’écran.D:\EclipseWorkspace\SelenideSample\build\reports\tests\1653381582102.0.png

Fonctionnalités supplémentaires de Selenide:

un. Concept FindElement ou Findelements dans Selenide

Ici, dans Selenide, il utilise $ pour trouver un élément et $$ pour trouver la collection d’éléments.

b. Classe d’action à Selenide

La classe Action nous aide à effectuer les opérations du clavier et de la souris. Donc, dans le sélénium, si nous voulons cliquer sur n’importe quel élément en utilisant la classe d’action, le code ressemblera à ceci,

Actions action = nouvelles Actions(driver);

element = driver.findElement(By.linkText(« Commencez gratuitement »));

action.moveToElement(element).build().perform();

En plus de cela, si vous souhaitez effectuer la même opération en utilisant Selenide, vous devez écrire,

SelenideElement element= $(By.linkText(« Commencez gratuitement »));

actions().moveToElement(element).build().perform();

C’est ça; il cliquera sur l’élément spécifié.

c. Recherche parent/enfant

$(« td »).parent()

$(« td »).plus proche()

$(« td »).find(Par.nom(« q »))

La fonctionnalité ci-dessus vous aidera lorsque vous traitez la ligne de contenu du tableau, alors elle est utile.

ré. Ajout de valeurs dans le champ de texte

Pour définir une valeur dans le texte ou le champ d’entrée, nous utilisons généralement sendKeys () qui est en fait un peu lent car, en arrière-plan, il entre les lettres une par une, mais dans Selenide, il utilise javascript pour entrer la valeur, et le la méthode est $.setValue();

Ex : $(By.locator).setValue(« Texte d’en-tête »);

e. Assertions en sélénide

Les assertions sont des validations ou des points de contrôle pour une application dans Selenium. Les assertions affirment avec confiance que le comportement de l’application est comme prévu. Les assertions dans Selenium sont utilisées pour valider les cas de test, pour ainsi dire. Selenide a des assertions dédiées à leur utilisation pour vérifier des éléments dans un navigateur Web. TestNG fournit des assertions précieuses, mais Selenide a des assertions dédiées à leur utilisation pour tester des éléments dans un navigateur Web. Il est facile de comprendre ce que fait une hypothèse donnée.

Jetez un œil au scénario suivant :

Sélénium:

En-tête WebElement = driver.findElement (By.tagName (« h1 ″));

assertEquals(« Texte d’en-tête », header.getText());

Séléniure :

$(« h1 »).shouldHave(text(« Texte d’en-tête »));

Selenide fournit plus d’assertions comme,

$(localisateur).devrait()

$(localisateur).devraitÊtre()

$(locator).shouldHave()

$(localisateur).nedevraitpas()

$(localisateur).nedevraitpasêtre()

$(locator).shouldNotHave()

F. Classe WebDriverRunnerWebDriverRunner Class

La classe WebDriverRunner est une façade statique permettant d’accéder à l’instance WebDriver pour les threads actuels. À l’aide de cet appel, vous pouvez utiliser n’importe quelle méthode liée à Webdriver. Par exemple, si vous souhaitez vider le cache d’un navigateur, vous devez écrire,

WebDriverRunner.clearBrowserCache();

Parallèlement à cela, il existe également d’autres fonctionnalités, telles que,

  • url() – Pour obtenir l’URL actuelle du site.
  • getWebDriver().manage().window().maximize() – Pour maximiser la fenêtre des navigateurs
  • getWebDriver().manage().timeouts().implicitlyWait(20, TimeUnit.MILLISECONDS) – Attendez une heure particulière.
  • closeWebDriver() – Pour fermer le navigateur.

Gestion de la fenêtre contextuelle d’authentification dans Selenide

Autopopup Nouveau

C’est mon expérience personnelle où j’ai trouvé Selenide plus utile alors que je traitais avec le popup d’authentification.

Être un testeur d’automatisation est l’une des tâches les plus difficiles à gérer. Popup d’authentification via le code car vous ne pouvez pas l’inspecter. Là, vous ne pouvez pas utiliser la classe Action. Vous pouvez le gérer en utilisant la classe Robot, mais dans certaines situations, cela échouera. Vous pouvez également utiliser les fonctionnalités de Selenium 4 pour gérer cela, mais pour cela, vous devez disposer d’un nom de domaine approprié et d’autres informations.

Ceci peut être réalisé avec Selenium. Vous devez entrer vos informations d’identification dans l’URL pour ce faire. Mais dans Selenide, cela le rend si simple que dans une méthode, tout comme dans la méthode ouverte, vous pouvez gérer la fenêtre contextuelle d’authentification.

ouvrir (« https://the-internet.herokuapp.com/basic_auth », «  », « admin », « admin »);

Ce code a éveillé ma curiosité à propos de Selenide, et j’ai décidé d’enquêter plus avant. Non seulement cela, mais Selenide nous a également fourni plusieurs autres installations pour nous aider dans le processus d’écriture de code. Si vous le lisez attentivement, vous en apprendrez plus à ce sujet.

Un bref récapitulatif:

  • Le Selenide est une bibliothèque, ce n’est pas un framework.
  • Nous pouvons utiliser Webdriver directement (fonctionnalité Selenium Webdriver).
  • Nous pouvons utiliser n’importe quelle instance Webdriver (fonctionnalité Selenium Webdriver).
  • Nous pouvons paralléliser les tests.
  • Nous pouvons utiliser des objets de page.
  • Il peut être utilisé en Java, Groovy et d’autres langages.
  • Il peut utiliser BDD.
  • Il peut être utilisé avec Junit, TestNG et Cucumber.






Source link