Cum se verifică balonul în Selenium webdriver

Sfat instrument în Selenium

A Sfat instrument în Selenium este un text care apare atunci când mouse-ul trece peste un obiect dintr-o pagină web. Obiectul poate fi un link, o imagine, un buton, o zonă de text, etc. Textul de tip tooltip oferă adesea mai multe informații despre obiectul pe care utilizatorul trece cursorul mouse-ului.

În mod tradițional, sfaturile instrumente erau implementate ca atribut „titlu” pentru un element. Valoarea acestui atribut a fost afișată ca un sfat explicativ la trecerea mouse-ului. Acesta este un text static care oferă informații despre element fără stil.

Acum, există multe plugin-uri disponibile pentru implementarea „sfaturi pentru instrumente”. Se implementează sfaturi avansate cu stil, randare, imagini și linkuri JavaPluginuri de script/JQuery sau folosind CSS Tooltips.

  • Pentru a accesa sau a verifica sfaturile cu instrumente statice care sunt implementate folosind atributul HTML „title”, putem folosi pur și simplu metoda getAttribute(„title”) a WebElement. Valoarea returnată a acestei metode (care este textul descrierii) este comparată cu o valoare așteptată pentru verificare.
  • Pentru alte forme de implementare de tip tooltip, va trebui să folosim „Advanced User Interactions API” furnizat de Web Driver pentru a crea efectul de trecere cu mouse-ul și apoi pentru a prelua indicația pentru element.

O scurtă prezentare a API-ului Advanced User Interactions

Advanced User Interactions API oferă API-ul pentru acțiuni ale utilizatorului, cum ar fi tragerea și plasarea, trecerea cu mouse-ul, selectarea multiplă, apăsarea și eliberarea tastelor și alte acțiuni folosind tastatura sau mouse-ul pe o pagină web.

Puteți referi acest lucru legătură pentru mai multe detalii despre API.

Aici, să vedem cum să folosim câteva clase și metode de care ar trebui să mutăm un element glisor cu o decalare.

Pas 1) Pentru a utiliza API-ul, trebuie importate următoarele pachete/clase:

Advanced User Interactions API

Pas 2) Creați un obiect din clasa „Acțiuni” și construiți Secvența de acțiuni ale utilizatorului. Clasa Actions este folosită pentru a construi secvența acțiunilor utilizatorului, cum ar fi moveToElement(), dragAndDrop() etc. Diverse metode legate de acțiunile utilizatorului sunt furnizate de API.

Obiectul driver este furnizat ca parametru pentru constructorul său.

Advanced User Interactions API

Pas 3) Creați un obiect de acțiune folosind metoda build() a clasei „Acțiuni”. Apelați metoda perform() pentru a executa toate acțiunile construite de obiectul Actions (builder aici).

Advanced User Interactions API

Am văzut cum să folosim unele dintre metodele de acțiuni ale utilizatorului oferite de API – clickAndHold(element), moveByOffset(10,0), release(). API-ul oferă multe astfel de metode.

Consultați legătură pentru mai multe detalii.

Cum să verificați (tratați) balonul explicativ în Selenium

Să vedem demonstrația de accesare și verificare a sfaturilor de instrumente în scenariul simplu

  • Scenariul 1: Tooltip este implementat folosind atributul „title”.
  • Scenariul 2: Tooltip este implementat folosind un plugin jQuery.

Scenariul 1: atribut HTML „titlu”.

Pentru acest caz, să luăm site-ul exemplu – https://demo.guru99.com/test/social-icon.html.

Vom încerca să verificăm pictograma „github” din partea dreaptă sus a paginii.

Atribut HTML „title”.

Pentru a face acest lucru, vom găsi mai întâi elementul și vom obține atributul „title” și vom verifica cu textul de sfat instrument așteptat.

Deoarece presupunem că sfatul instrumentului se află în atributul „titlu”, nici măcar nu automatizăm efectul de trecere cu mouse-ul, ci pur și simplu recuperăm valoarea atributului folosind metoda „getAttribute()”.

Atribut HTML „title”.

Iată codul

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();			
   }		
}		

Explicația codului

  1. Găsiți WebElement care reprezintă pictograma „github”.
  2. Obțineți atributul „title” folosind metoda getAttribute().
  3. Afirmați valoarea în raport cu valoarea indicată în indicație.

Scenariul 2: pluginul JQuery

Există o mulțime de pluginuri JQuery disponibile pentru a implementa sfaturile instrumente și fiecare are o formă de implementare ușor diferită.

Unele plugin-uri se așteaptă ca codul HTML să fie prezent tot timpul lângă elementul pentru care este aplicabil indicația, în timp ce celelalte creează o etichetă dinamică „div”, care apare din mers în timp ce trece cu mouse-ul peste element.

Pentru demonstrația noastră, să luăm în considerare modul „jQuery Tools Tooltip” de implementare tooltip.

Aici, în URL - https://demo.guru99.com/test/tooltip.html Puteți vedea demonstrația în care, trecând mouse-ul peste „Descărcați acum”, obținem un sfat avansat cu o imagine, un fundal cu înștiințări, un tabel și un link în interiorul acestuia, pe care se poate face clic.

Pluginul JQuery

Dacă te uiți la sursa de mai jos, poți vedea că eticheta div care reprezintă balonul explicativ este întotdeauna prezentă lângă eticheta linkului „Descarcă acum”. Dar, codul din interiorul etichetei de script de mai jos controlează când trebuie să apară.

Pluginul JQuery

Să încercăm să verificăm doar textul linkului din sfatul explicativ pentru demonstrația noastră aici.

Vom găsi mai întâi WebElement-ul corespunzător „Descărcați acum”. Apoi, folosind API-ul Interactions, vom trece la element (mouse-hover). În continuare, vom găsi WebElement care corespunde linkului din interiorul tooltip afișat și îl vom verifica în raport cu textul așteptat.

Pluginul JQuery

Iată codul

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();			
   }		
}		

Explicarea codului

  1. Găsiți WebElement care corespunde elementului „descărcați acum” pe care îl vom trece cu mouse-ul.
  2. Folosind API-ul Interactions, treceți mouse-ul pe „Descărcați acum”.
  3. Presupunând că este afișat indicația, găsiți elementul Web care corespunde linkului din interiorul indicației, adică eticheta „a”.
  4. Verificați textul de indicație al link-ului preluat folosind getText() față de o valoare așteptată pe care am stocat-o în „expectedToolTip”

Rezumat

În acest tutorial, ați învățat cum să accesați Tooltips folosind Selenium Driver web.

Sfaturile pentru instrumente sunt implementate în diferite moduri–

  • Implementarea de bază se bazează pe atributul „title” al HTML. getAttribute(title) primește valoarea tooltip.
  • Alte implementări de sfaturi despre instrumente, cum ar fi JQuery, sfaturi despre instrumente CSS, necesită interacțiuni API pentru a crea efectul de trecere cu mouse-ul

Advanced User Interactions API–

  • moveToElement(element) din clasa Actions este folosit pentru a trece mouse-ul pe un element.
  • Metoda Build() a clasei Actions construiește secvența acțiunilor utilizatorului într-un obiect Action.
  • Perform() din clasa Action execută toate secvența de acțiuni ale utilizatorului simultan.

Pentru a verifica un sfat instrument, trebuie să trecem mai întâi cu mouse-ul pe element, apoi să găsim elementul care corespunde cu sfatul instrument și să obținem textul acestuia sau alte valori pentru a le verifica în raport cu valorile așteptate.