Hur du verifierar verktygstips i Selenium

Verktygstips i Selenium

A Verktygstips i Selenium รค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 objektet som anvรคndaren svรคvar รถver muspekaren pรฅ.

Verktygstips implementerades traditionellt som ett "titel"-attribut till ett element. Vรคrdet pรฅ det hรคr attributet visades som ett verktygstips nรคr du hรฅller musen. Detta รคr en statisk text som ger information om elementet utan styling.

Nu finns det mรฅnga plugins tillgรคngliga fรถr implementering av "verktygstips". Avancerade verktygstips med styling, rendering, bilder och lรคnkar implementeras med hjรคlp av JavaSkript/JQuery-plugins eller med hjรคlp av CSS-verktygstips.

  • Fรถr att komma รฅt eller verifiera de statiska verktygstipsen som implementeras med HTML-attributet "title" kan vi helt enkelt anvรคnda metoden getAttribute("title") i WebElement. Det returnerade vรคrdet fรถr denna metod (som รคr verktygstipset) 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 muspekarens effekt och sedan hรคmta verktygstipset fรถr elementet.

Kort om Advanced User Interactions API

Advanced User Interactions API tillhandahรฅller API fรถr anvรคndarรฅtgรคrder som dra och slรคpp, hovring, multival, tangenttryckning och -slรคpp och andra รฅtgรคrder med tangentbord eller mus pรฅ en webbsida.

Du kan hรคnvisa till detta lรคnk fรถr mer information om API.

Lรฅt oss hรคr se hur man anvรคnder ett par klasser och metoder som vi skulle behรถva fรถr att flytta ett skjutreglage med en offset.

Steg 1) Fรถr att kunna anvรคnda API:t mรฅste fรถljande paket/klasser importeras:

Advanced User Interactions API

Steg 2) Skapa ett objekt av klassen "Actions" och bygg sekvensen av anvรคndarรฅtgรคrder. Actions-klassen 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.

Drivrutinsobjektet tillhandahรฅlls som en parameter till dess konstruktor.

Advanced User Interactions API

Steg 3) Skapa ett Action Object med metoden build() i klassen "Actions". Anropa metoden perform() fรถr att utfรถra alla รฅtgรคrder som byggts av Actions-objektet (byggaren hรคr).

Advanced User Interactions API

Vi har sett hur man anvรคnder nรฅgra av anvรคndarรฅtgรคrdsmetoderna som tillhandahรฅlls av API:n โ€“ clickAndHold(element), moveByOffset(10,0), release(). API tillhandahรฅller mรฅnga sรฅdana metoder.

Referera till lรคnk fรถr mer detaljer.

Hur du verifierar (hanterar) verktygstips i Selenium

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 hjรคlp av en jQuery-plugin.

Scenario 1: HTML "titel"-attribut

Fรถr det hรคr fallet, lรฅt oss ta exempelwebbplatsen โ€“ https://demo.guru99.com/test/social-icon.html.

Vi kommer att fรถrsรถka verifiera verktygstipset fรถr "github"-ikonen lรคngst upp till hรถger pรฅ sidan.

HTML "title" Attribut

Fรถr att gรถra det kommer vi fรถrst att hitta elementet och fรฅ dess 'title'-attribut och verifiera med den fรถrvรคntade verktygstipstexten.

Eftersom vi antar att verktygstipset finns i "title"-attributet, automatiserar vi inte ens muspekarens effekt utan hรคmtar helt enkelt attributets vรคrde med metoden "getAttribute()".

HTML "title" Attribut

Hรคr รคr koden

import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.chrome.ChromeDriver;		
import org.openqa.selenium.*;		

public class ToolTip {				
    public static void main(String[] args) {									
     
        String baseUrl = "https://demo.guru99.com/test/social-icon.html";					
        System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");					
        WebDriver driver = new ChromeDriver();					
        driver.get(baseUrl);					
        String expectedTooltip = "Github";	
        
        // Find the Github icon at the top right of the header		
        WebElement github = driver.findElement(By.xpath(".//*[@class='soc-ico show-round']/a[4]"));	
        
        //get the value of the "title" attribute of the github icon		
        String actualTooltip = github.getAttribute("title");	
        
        //Assert the tooltip's value is as expected 		
        System.out.println("Actual Title of Tool Tip"+actualTooltip);							
        if(actualTooltip.equals(expectedTooltip)) {							
            System.out.println("Test Case Passed");					
        }		
        driver.close();			
   }		
}		

Fรถrklaring av kod

  1. Hitta WebElement som representerar "github"-ikonen.
  2. Fรฅ dess "title"-attribut med metoden getAttribute().
  3. Sรคkerstรคll vรคrdet mot det fรถrvรคntade verktygstipsvรคrdet.

Scenario 2: JQuery Plugin

Det finns massor av JQuery-plugins tillgรคngliga fรถr att implementera verktygstipsen, och var och en har en nรฅgot annorlunda form av implementering.

Vissa plugins fรถrvรคntar sig att verktygstipsets HTML hela tiden ska finnas bredvid elementet som verktygstipset รคr tillรคmpligt fรถr medan andra skapar en dynamisk "div"-tagg, som dyker upp i farten medan du svรคvar รถver elementet.

Fรถr vรฅr demonstration, lรฅt oss รถvervรคga "jQuery Tools Tooltip" sรคttet att implementera verktygstips.

Hรคr i webbadressen โ€“ https://demo.guru99.com/test/tooltip.html du kan se demon dรคr vi hรฅller musen รถver "Ladda ner nu" fรฅr ett avancerat verktygstips med en bild, bildtextbakgrund, en tabell och en lรคnk inuti som รคr klickbar.

JQuery plugin

Om du tittar pรฅ kรคllan nedan kan du se att div-taggen som representerar verktygstipset alltid finns bredvid "Ladda ner nu"-lรคnkens tagg. Men koden inuti skripttaggen nedan styr nรคr den behรถver popup upp.

JQuery plugin

Lรฅt oss fรถrsรถka verifiera bara lรคnktexten i verktygstipset fรถr vรฅr demonstration hรคr.

Vi kommer fรถrst att hitta det WebElement som motsvarar "Ladda ner nu". Sedan med hjรคlp av Interactions API, kommer vi att flytta till elementet (mouse-hover). Dรคrefter hittar vi WebElement som motsvarar lรคnken inuti det visade verktygstipset och verifierar det mot den fรถrvรคntade texten.

JQuery plugin

Hรคr รคr koden

import org.openqa.selenium.interactions.Action;		
import org.openqa.selenium.interactions.Actions;		
import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.chrome.ChromeDriver;		
import org.openqa.selenium.*;		

public class JqueryToolTip {				
    public static void main(String[] args) {									
     
        String baseUrl = "https://demo.guru99.com/test/tooltip.html";					
        System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");	
        
        WebDriver driver = new ChromeDriver();					
        String expectedTooltip = "What's new in 3.2";					
        driver.get(baseUrl);					
        		
        WebElement download = driver.findElement(By.xpath(".//*[@id='download_now']"));							
        Actions builder = new Actions (driver);							

        builder.clickAndHold().moveToElement(download);					
        builder.moveToElement(download).build().perform(); 	
        
        WebElement toolTipElement = driver.findElement(By.xpath(".//*[@class='box']/div/a"));							
        String actualTooltip = toolTipElement.getText();			
        
        System.out.println("Actual Title of Tool Tip  "+actualTooltip);							
        if(actualTooltip.equals(expectedTooltip)) {							
            System.out.println("Test Case Passed");					
        }		
        driver.close();			
   }		
}		

Kodfรถrklaring

  1. Hitta WebElement som motsvarar elementet "ladda ner nu" som vi kommer att hรฅlla musen รถver.
  2. Med hjรคlp av Interactions API, hรฅll muspekaren pรฅ "Ladda ner nu".
  3. Fรถrutsatt att verktygstipset visas, hitta WebElement som motsvarar lรคnken inuti verktygstipset, dvs. "a"-taggen.
  4. Verifiera lรคnkens verktygstipstext hรคmtad med getText() mot ett fรถrvรคntat vรคrde som vi har lagrat i "expectedToolTip"

Sammanfattning

I den hรคr handledningen har du lรคrt dig hur du kommer รฅt verktygstips med hjรคlp av Selenium Webb-drivrutin.

Verktygstips implementeras pรฅ olika sรคttโ€“

  • Den grundlรคggande implementeringen รคr baserad pรฅ HTMLs "title"-attribut. getAttribute(title) fรฅr vรคrdet av verktygstipset.
  • Andra verktygstipsimplementering som JQuery, CSS-verktygstips krรคver Interactions API fรถr att skapa muspekningseffekt

Advanced User Interactions APIโ€“

  • moveToElement(element) i klassen Actions anvรคnds fรถr att muspeka ett element.
  • Build()-metoden fรถr Actions-klassen bygger sekvensen av anvรคndarรฅtgรคrder i ett Action-objekt.
  • Perform() av โ€‹โ€‹klassen Action exekverar alla sekvenser av anvรคndarรฅtgรคrder pรฅ en gรฅng.

Fรถr att verifiera ett verktygstips mรฅste vi fรถrst fรถra musen รถver elementet, sedan hitta det element som motsvarar verktygstipset och fรฅ dess text eller andra vรคrden att verifiera mot de fรถrvรคntade vรคrdena.

Sammanfatta detta inlรคgg med: