Verktygstips i selen
Ett verktygstips i selen är en text som visas när en mus svävar över ett objekt på en webbsida. Objektet kan vara en länk, en bild, en knapp, ett textområde etc. Verktygstipstexten ger ofta mer information om det objekt som användaren svävar över muspekaren.
Verktygstips implementerades traditionellt som ett "attribut" -attribut till ett element. Värdet på detta attribut visades som ett verktygstips för mus-svävar. Detta är en statisk text som ger information om elementet utan styling.
Nu finns det många plugins tillgängliga för "verktygstips" implementering. Avancerade verktygstips med styling, rendering, bilder och länkar implementeras med JavaScript / JQuery-plugins eller med CSS Tooltips.
- För att komma åt eller verifiera de statiska verktygstips som implementeras med HTML-attributet "title" kan vi helt enkelt använda getAttribute ("title") -metoden i WebElement. Det returnerade värdet för den här metoden (som är verktygstipstexten) jämförs med ett förväntat värde för verifiering.
- För andra former av verktygstipsimplementeringar måste vi använda "Advanced User Interactions API" som tillhandahålls av webbdrivrutinen för att skapa muspekaren och sedan hämta verktygstipsen för elementet.
En sammanfattning av Advanced User Interactions API:
Advanced User Interactions API tillhandahåller API för användaråtgärder som dra och släpp, sväva, flervals, tangenttryckning och släpp och andra åtgärder med tangentbord eller mus på en webbsida.
Du kan hänvisa till den här länken för mer information om API: et.
https://seleniumhq.github.io/selenium/docs/api/java/index.html?org/openqa/selenium/interactions/Actions.html
Här, låt oss se hur man använder ett par klasser och metoder som vi skulle behöva för att flytta ett skjutelement med en förskjutning.
Steg 1) För att kunna använda API: et måste följande paket / klasser importeras:
Steg 2) Skapa ett objekt av "Actions" -klassen och bygg sekvensen för användaråtgärder. Åtgärdsklass används för att bygga sekvensen av användaråtgärder som moveToElement (), dragAndDrop () etc. Olika metoder relaterade till användaråtgärder tillhandahålls av API.
Drivarobjektet tillhandahålls som en parameter till dess konstruktör.
Steg 3) Skapa ett åtgärdsobjekt med hjälp av build () -metoden i "Actions" -klassen. Ring metoden perform () för att utföra alla åtgärder som byggts av Actions-objektet (byggare här).
Vi har sett hur man använder några av användaråtgärderna som tillhandahålls av API: n - clickAndHold (element), moveByOffset (10,0), release (). API: n ger många sådana metoder.
Se länken för mer information.
Hur får jag verktygstipstext i Selenium Webdriver
Låt oss se demonstrationen av att komma åt och verifiera verktygstipsen i det enkla scenariot
- Scenario 1: Verktygstips implementeras med attributet "title"
- Scenario 2: Verktygstips implementeras med ett jQuery-plugin.
Scenario 1: HTML 'attribut' attribut
Låt oss ta exemplet på webbplatsen - http://demo.guru99.com/test/social-icon.html.
Vi kommer att försöka verifiera verktygstips för "github" -ikonen längst upp till höger på sidan.
För att göra det kommer vi först att hitta elementet och få dess 'titel' attribut och verifiera med den förväntade verktygstipsen.
Eftersom vi antar att verktyget är i attributet "title" automatiserar vi inte ens muspekaren utan bara hämtar attributets värde med "getAttribute ()" -metoden.
Här är koden
importera org.openqa.selenium.By;importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.chrome.ChromeDriver;importera org.openqa.selenium. *;Verktygstips för allmän klass {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/social-icon.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver-drivrutin = ny ChromeDriver ();driver.get (baseUrl);String expectTooltip = "Github";// Hitta Github-ikonen längst upp till höger i rubrikenWebElement github = driver.findElement (By.xpath (".//* ** @ class = 'soc-ico show-round'] / a [4]"));// få värdet av attributet "title" för github-ikonenSträng actualTooltip = github.getAttribute ("title");// Hävda att verktygstipsets värde är som förväntatSystem.out.println ("Verklig titel på verktygstips" + faktisk verktygstips);if (actualTooltip.equals (expectedTooltip)) {System.out.println ("Testfall klarat");}driver.close ();}}
Förklaring av kod
- Hitta WebElement som representerar ikonen "github".
- Hämta dess "title" -attribut med getAttribute () -metoden.
- Gör värdet mot det förväntade värdet för verktygstips.
Scenario 2: JQuery-plugin:
Det finns många JQuery-plugins tillgängliga för att implementera verktygstips, och alla har en något annan form av implementering.
Vissa insticksprogram förväntar sig att HTML-verktygstipset ska finnas hela tiden bredvid det element som verktygstipset gäller för medan de andra skapar en dynamisk "div" -tagg som visas i farten medan den svävar över elementet.
För vår demonstration, låt oss överväga "jQuery Tools Tooltip" sätt att implementera tooltip.
Här i URL: en - http://demo.guru99.com/test/tooltip.html kan du se demo där musen svävar över "Ladda ner nu", vi får ett avancerat verktygstips med en bild, bildtext, en tabell och en länk inuti den som är klickbar.
Om du tittar på källan nedan kan du se att div-taggen som representerar verktygstipsen alltid finns bredvid länken "Ladda ner nu". Men koden inuti skripttaggen nedan styr när den behöver poppas upp.
Låt oss försöka verifiera bara länktexten i verktygstipsen för vår demonstration här.
Vi hittar först WebElement som motsvarar "Ladda ner nu". Sedan använder vi Interactions API, vi flyttar till elementet (mus-svävar). Därefter hittar vi WebElement som motsvarar länken i den visade verktygstipsen och verifierar den mot den förväntade texten.
Här är koden
importera org.openqa.selenium.interactions.Action;importera org.openqa.selenium.interactions.Actions;importera org.openqa.selenium.By;importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.chrome.ChromeDriver;importera org.openqa.selenium. *;offentlig klass JqueryToolTip {public static void main (String [] args) {SträngbasUrl = "http://demo.guru99.com/test/tooltip.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver-drivrutin = ny ChromeDriver ();String expectTooltip = "Nyheter i 3.2";driver.get (baseUrl);WebElement nedladdning = driver.findElement (By.xpath (".//* ** @ id = 'download_now']"));Åtgärdsbyggare = nya åtgärder (drivrutin);builder.clickAndHold (). moveToElement (nedladdning);builder.moveToElement (nedladdning) .build (). utför ();WebElement toolTipElement = driver.findElement (By.xpath (".//* ** @ class = 'box'] / div / a"));Sträng actualTooltip = toolTipElement.getText ();System.out.println ("Verklig titel på verktygstips" + faktisk verktygstips);if (actualTooltip.equals (expectedTooltip)) {System.out.println ("Testfall klarat");}driver.close ();}}
Kodförklaring
- Hitta WebElement som motsvarar elementet "ladda ner nu" som vi kommer att hålla musen över.
- Med hjälp av Interactions API, håll muspekaren över till "Ladda ner nu".
- Förutsatt att verktygstips visas, leta reda på WebElement som motsvarar länken inuti verktygstips, dvs taggen "a".
- Verifiera länkens verktygstips som hämtats med getText () mot ett förväntat värde som vi har lagrat i "expectToolTip"
Sammanfattning:
I den här handledningen har du lärt dig hur du kommer åt verktygstips med Selenium Web-drivrutin.
- Verktygstips implementeras på olika sätt -
- Den grundläggande implementeringen baseras på HTML: s "title" -attribut. getAttribute (title) får värdet av verktygstipset.
- Andra implementeringar av verktygstips är som JQuery, CSS-verktygstips kräver interaktions-API för att skapa muspekaren
- API för avancerade användarinteraktioner
- moveToElement (element) i klassklassen Actions används för att hålla musen över ett element.
- Build () -metoden i Actions-klassen bygger sekvensen av användaråtgärder till ett Action-objekt.
- Perform () av Action-klassen kör alla sekvenser av användaråtgärder samtidigt.
- För att verifiera ett verktygstips måste vi först hålla muspekaren över elementet och sedan hitta det element som motsvarar verktygstipsen och få dess text eller andra värden att verifiera mot de förväntade värdena.