Jak ověřit popisek pomocí Selenium WebDriver

Obsah:

Anonim

Popisek v selenu

Popisek v Selen je text, který se objeví, když se myš pohybuje nad objekt na webové stránce. Objektem může být odkaz, obrázek, tlačítko, textová oblast atd. Text nápovědy často poskytuje více informací o objektu, na kterém se uživatel pohybuje nad kurzorem myši.

Popisky nástrojů byly tradičně implementovány jako atribut „title“ prvku. Hodnota tohoto atributu byla zobrazena jako popisek při najetí myší. Toto je statický text poskytující informace o prvku bez stylingu.

Nyní je k dispozici mnoho modulů plug-in pro implementaci „tipů na nástroje“. Pokročilé popisy nástrojů se stylem, vykreslením, obrázky a odkazy se implementují pomocí pluginů JavaScriptu / JQuery nebo pomocí popisů CSS.

  • Pro přístup nebo ověření statických popisů nástrojů, které jsou implementovány pomocí atributu HTML „title“, můžeme jednoduše použít metodu getAttribute („title“) WebElement. Vrácená hodnota této metody (což je text popisu nástroje) se porovná s očekávanou hodnotou pro ověření.
  • U jiných forem implementace popisů nástrojů budeme muset k vytvoření efektu přechodu myší použít „Rozhraní Advanced User Interactions API“ poskytované webovým ovladačem a poté načíst popisek prvku.

Stručný popis rozhraní Advanced User Interactions API:

Rozhraní Advanced User Interactions API poskytuje rozhraní API pro akce uživatelů, jako je přetažení myší, vznášení se myší, vícenásobný výběr, stisknutí a uvolnění kláves a další akce pomocí klávesnice nebo myši na webové stránce.

Tento odkaz můžete odkázat na další podrobnosti o API.

https://seleniumhq.github.io/selenium/docs/api/java/index.html?org/openqa/selenium/interactions/Actions.html

Zde se podívejme, jak použít několik tříd a metod, které bychom potřebovali k posunutí prvku posuvníku o posun.

Krok 1) Abyste mohli používat API, je třeba importovat následující balíčky / třídy:

Krok 2) Vytvořte objekt třídy „Akce“ a vytvořte Posloupnost akcí uživatelů. Třída akcí se používá k vytvoření posloupnosti akcí uživatelů, jako je moveToElement (), dragAndDrop () atd. Různé metody související s akcemi uživatelů poskytuje API.

Objekt ovladače je poskytován jako parametr jeho konstruktoru.

Krok 3) Vytvořte akční objekt pomocí metody build () třídy „Akce“. Voláním metody perform () provedete všechny akce vytvořené objektem Akce (tvůrce zde).

Viděli jsme, jak používat některé z uživatelských metod Action poskytovaných API - clickAndHold (element), moveByOffset (10,0), release (). API poskytuje mnoho takových metod.

Další podrobnosti naleznete v odkazu.

Jak získat text popisu v selenovém webdriveru

Podívejme se na ukázku přístupu a ověření tipů nástroje v jednoduchém scénáři

  • Scénář 1: Popisek je implementován pomocí atributu „title“
  • Scénář 2: Popisek je implementován pomocí pluginu jQuery.

Scénář 1: Atribut HTML „title“

V tomto případě si vezměme ukázkový web - http://demo.guru99.com/test/social-icon.html.

Pokusíme se ověřit popisek ikony „github“ v pravé horní části stránky.

Abychom to mohli udělat, nejprve najdeme prvek a získáme jeho atribut „title“ a ověříme pomocí očekávaného textu tipu nástroje.

Protože předpokládáme, že tip nástroje je v atributu „title“, nejsme ani automatizováni efektu přechodu myší, ale jednoduše načítáme hodnotu atributu pomocí metody „getAttribute ()“.

Tady je kód

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium. *;tip pro veřejnou třídu {public static void main (String [] args) {Řetězec baseUrl = "http://demo.guru99.com/test/social-icon.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Ovladač WebDriver = nový ChromeDriver ();driver.get (baseUrl);Řetězec expectTooltip = "Github";// Najděte ikonu Github v pravém horním rohu záhlavíWebElement github = driver.findElement (By.xpath (".//*[@ class = 'soc-ico show-round'] / a [4]"));// získá hodnotu atributu „title“ ikony githubŘetězec actualTooltip = github.getAttribute ("title");// Tvrdí, že hodnota popisku je podle očekáváníSystem.out.println ("Skutečný název tipu nástroje" + actualTooltip);if (actualTooltip.equals (expectTooltip)) {System.out.println ("Testovací případ prošel");}driver.close ();}}

Vysvětlení kódu

  1. Najděte WebElement představující ikonu „github“.
  2. Získejte jeho atribut „title“ pomocí metody getAttribute ().
  3. Přiřadit hodnotu oproti očekávané hodnotě popisu nástroje.

Scénář 2: Plugin JQuery:

K implementaci popisů nástrojů je k dispozici spousta doplňků JQuery a každý má mírně odlišnou formu implementace.

Některé doplňky očekávají, že popisek HTML bude přítomen po celou dobu vedle prvku, pro který je popisek použitelný, zatímco jiné vytvářejí dynamickou značku „div“, která se zobrazuje za chodu, když se vznáší nad prvkem.

Pro naši demonstraci se podívejme na způsob implementace tipu „jQuery Tools Tooltip“.

Zde v adrese URL - http://demo.guru99.com/test/tooltip.html můžete vidět ukázku, kde při najetí myší nad „Stáhnout nyní“ dostaneme pokročilý popisek s obrázkem, pozadím popisku, tabulkou a odkaz uvnitř, na který lze kliknout.

Pokud se podíváte na níže uvedený zdroj, uvidíte, že značka div představující popisek je vždy přítomna vedle značky odkazu „Stáhnout nyní“. Kód uvnitř značky skriptu níže však řídí, kdy je třeba vyskakovací okno.

Pokusme se zde ověřit pouze text odkazu v popisku naší ukázky.

Nejprve najdeme WebElement odpovídající „Stáhnout nyní“. Poté pomocí rozhraní Interaction API přejdeme k prvku (ukazatel myši). Dále najdeme WebElement, který odpovídá odkazu uvnitř zobrazeného popisu a ověříme jej oproti očekávanému textu.

Tady je kód

importovat org.openqa.selenium.interaction.Action;importovat org.openqa.selenium.interaction.Actions;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium. *;veřejná třída JqueryToolTip {public static void main (String [] args) {Řetězec baseUrl = "http://demo.guru99.com/test/tooltip.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Ovladač WebDriver = nový ChromeDriver ();String expectTooltip = "Co je nového v 3.2";driver.get (baseUrl);WebElement download = driver.findElement (By.xpath (".//*[@ id = 'download_now']"));Tvůrce akcí = nové Akce (ovladač);builder.clickAndHold (). moveToElement (ke stažení);builder.moveToElement (ke stažení) .build (). perform ();WebElement toolTipElement = driver.findElement (By.xpath (".//*[@ class = 'box'] / div / a"));Řetězec actualTooltip = toolTipElement.getText ();System.out.println ("Skutečný název tipu nástroje" + actualTooltip);if (actualTooltip.equals (expectTooltip)) {System.out.println ("Testovací případ prošel");}driver.close ();}}

Vysvětlení kódu

  1. Najděte WebElement, který odpovídá prvku „stáhnout nyní“, na který umístíme ukazatel myši.
  2. Pomocí rozhraní Interaction API najeďte myší na „Stáhnout nyní“.
  3. Za předpokladu, že se zobrazí popisek, najděte WebElement, který odpovídá odkazu uvnitř popisku, tj. Tag „a“.
  4. Ověřte text popisku odkazu načtený pomocí metody getText () proti očekávané hodnotě, kterou jsme uložili v „expectToolTip“

Souhrn:

V tomto kurzu jste se naučili, jak přistupovat k popisům pomocí ovladače Selenium Web.

  • Tipy pro nástroje jsou implementovány různými způsoby -
    • Základní implementace je založena na atributu „title“ HTML. getAttribute (title) získá hodnotu popisku.
    • Další implementace tipů nástrojů, jako je JQuery, popisy nástrojů CSS, vyžadují rozhraní API interakcí k vytvoření efektu přechodu myší
  • Advanced User Interactions API
    • moveToElement (prvek) třídy Akce se používá k najetí myší na prvek.
    • Metoda Build () třídy Akce staví posloupnost akcí uživatelů do objektu Akce.
    • Třída Perform () Action provede všechny sekvence akcí uživatele najednou.
  • Abychom mohli ověřit popisek, musíme nejprve umístit kurzor myši na prvek, pak najít prvek, který odpovídá tipu nástroje, a získat jeho text nebo jiné hodnoty k ověření oproti očekávaným hodnotám.