Tööriistavihje kinnitamine Selenium

⚡ Nutikas kokkuvõte

Kontrollige kohtspikri Selenium WebDriver hõlmab kahte usaldusväärset kohtspikri teksti kinnitamise mustrit: HTML-i pealkirja atribuudi otselugemine ja Actions API kasutamine dünaamiliselt renderdavate elementide kohal hiirega liikumiseks. JavaSkripti või jQuery kohtspikrid.

  • ???? Põhiprintsiip: Kohtvihje on tekst, mis kuvatakse hiirekursori hõljutamisel, seega sõltub kontrollimisstrateegia sellest, kuhu brauser selle teksti DOM-is salvestab.
  • ???? ️ Staatilised kohtspikrid: HTML-i pealkirjapõhiste kohtspikride jaoks kutsuge getAttribute("title") or getDomAttribute("title") ja võrdle oodatava stringiga.
  • 🖱️ Dünaamilised kohtspikrid: jQuery, CSS-i või pluginate kohtspikrite jaoks kasutage Actions klassi koos moveToElement(target).build().perform() enne kohtspikri elemendi lugemist.
  • Parim harjutus: Oota, kuni pärast hiire liigutamist muutub kohtspikri konteiner nähtavaks, seejärel lisa tekst getText() vananenud või tühjade lugemiste vältimiseks.
  • 🚀 Selenium 4. aasta näpunäide: Paar Selenium Stabiilsete ja draiveri teekonnast sõltumatute kohtspikrikontrollide jaoks selgesõnaliste ooteaegadega haldur Thread.sleepi asemel.

Kontrollige kohtspikri Selenium Veebidraiver

Tööriistavihje sisse Selenium

A Tööriistavihje sisse Selenium on lühike tekst, mis kuvatakse siis, kui hiir veebilehel objekti kohal liigub. Objekt võib olla link, pilt, nupp või tekstiala. Kohtvihje tekst annab sageli kursori all oleva elemendi kohta lisateavet.

Tööriistavihjeid rakendati traditsiooniliselt elemendi atribuudina „title”. Selle atribuudi väärtus kuvati hiirekursori liigutamisel elemendi kohale tööriistavihjena. See on staatiline tekst, mis annab elemendi kohta teavet ilma stiilita.

Tänapäeval on kohtspikri loomiseks saadaval palju pluginaid. Täiustatud kohtspikrid stiili, renderduse, piltide ja linkidega luuakse, kasutades järgmist. JavaSkripti- või jQuery pluginad või ainult CSS-i kohtspikrid.

  • HTML-i atribuudi „title” kaudu rakendatud staatiliste kohtspikritele juurdepääsuks või nende kontrollimiseks kasutage getAttribute("title") meetod veebielemendil. Tagastatud väärtust (kohtvihje teksti) võrreldakse kontrollimiseks oodatava väärtusega.
  • Teiste kohtspikri rakenduste puhul kasutage WebDriveri pakutavat „Advanced User Interactions API-t”, et luua hiirekursori hõljutamise efekt ja seejärel elemendi kohtspikri hankida.

Lühikirjeldus täiustatud kasutaja interaktsioonide API-st

Täiustatud kasutajainteraktsioonide API võimaldab veebilehel kasutaja toiminguid, nagu lohistamine, kursori hõljutamine, mitmikvalimine, klahvivajutus ja vabastamine ning muud klaviatuuri või hiire toimingud.

Võite sellele viidata ametlik Actionsi klassi viide API kohta lisateabe saamiseks.

Enne hüpetping Stsenaariumide osas vaatame klasse ja meetodeid, mida vajame liuguri elemendi nihke võrra liigutamiseks.

Step 1) API kasutamiseks importige järgmised paketid ja klassid:

Advanced User Interactions API

Step 2) Looge klassi „Actions“ objekt ja koostage kasutaja toimingute jada. Klass Actions loob aheldatud toiminguid, näiteks moveToElement() ja dragAndDrop(). Draiveriobjekt antakse parameetrina konstruktorile.

Advanced User Interactions API

Step 3) Loo Action objekt, kasutades klassi „Actions“ meetodit build(). Kutsu meetod perform(), et käivitada kõik järjekorras olevad toimingud ehitajas.

Advanced User Interactions API

Oleme näinud, kuidas kasutada mõningaid API pakutavaid kasutaja toimingumeetodeid: clickAndHold(element), moveByOffset(10, 0) ja release(). API pakub palju rohkem.

Tööriistavihjete rakendamine vs. Selenium Kontrollimise meetod

Tööriistavihje tüüp Kuidas see renderdub Selenium Lähenemine
HTML-i pealkirja atribuut Tekst on salvestatud elemendile endale; brauser kuvab selle hiirega üle minnes. Loe koos getAttribute("title") or getDomAttribute("title")Hõljumist pole vaja.
jQuery / JS plugin Hiirega elemendi kohal liikumisel kuvatakse selle kõrval spetsiaalne div. Kasutage toiminguid moveToElement(target).perform(), oota ja loe seejärel kohtspikri elementi getText().
Ainult CSS-i kohtspikri Pseudoelement või sugulusdiv lülitati sisse/välja :hover. Hõljuta kursorit toimingutega ja loe renderdatud teksti või arvutatud stiili.

Tööriistavihje kinnitamine (käsitsemine) Selenium

Vaatame kahe levinud stsenaariumi abil tööriistavihjetele juurdepääsu ja nende kontrollimise kohta järgmist:

  • Stsenaarium 1: Tööriistavihje rakendatakse atribuudi „title” abil.
  • Stsenaarium 2: Tööriistavihje rakendatakse jQuery plugina abil.

1. stsenaarium: HTML-i atribuut „title”

Sel juhul kasutame näidisveebisaiti https://demo.guru99.com/test/social-icon.html ja kontrollige lehe paremas ülanurgas asuva „github” ikooni kohtspikriit.

HTML-i atribuut "title".

Esmalt leiame elemendi, seejärel loeme selle atribuudi „pealkiri” ja võrdleme seda oodatava kohtspikri tekstiga.

Kuna kohtspikri asub atribuudis „title”, ei automatiseeri me isegi hiirekursori liigutamist; me lihtsalt hangime atribuudi väärtuse meetodiga getAttribute().

HTML-i atribuut "title".

Siin on kood:

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]"));

        // Read the "title" attribute value of the Github icon
        String actualTooltip = github.getAttribute("title");

        // Assert that the tooltip value matches the expected one
        System.out.println("Actual Title of Tool Tip " + actualTooltip);
        if (actualTooltip.equals(expectedTooltip)) {
            System.out.println("Test Case Passed");
        }
        driver.close();
    }
}

Koodi selgitus:

  1. Leidke WebElement, mis tähistab ikooni „github”.
  2. Loe selle atribuuti „title” meetodiga getAttribute().
  3. Kinnitage väärtus oodatava kohtspikri teksti suhtes.

Selenium 4 näpunäide: Eelista getDomAttribute("title") literaali HTML-atribuudi jaoks ja laske Selenium Haldur lahendab draiveri kõvakodeerimise asemel chromedriver.exe.

Stsenaarium 2: jQuery plugin

Paljud jQuery pluginad rakendavad kohtspikriid ja igaüks neist renderdub veidi erinevalt.

Mõned pluginad hoiavad kohtspikri märgistust kogu aeg päästikuelemendi kõrval, teised aga loovad kursori päästikule sisenemisel dünaamiliselt sildi „div”.

Selle demonstratsiooni jaoks kasutame stiili „jQuery Tools Tooltip”.

avatud https://demo.guru99.com/test/tooltip.html; hiirekursori hõljumine valiku „Laadi kohe alla” kohal kuvab täpsema kohtspikri pildi, viikteksti tausta, väikese tabeli ja klõpsatava lingiga.

jQuery plugina kohtspikker

Kui vaatate lähtekoodi, asub kohtspikri esindav div juba lingi „Laadi kohe alla” kõrval. Allolev skriptisilt kontrollib, millal see kuvatakse.

jQuery plugina kohtspikri lähtekood

Nüüd kontrollime kohtspikri sees kuvatavat lingiteksti.

Esmalt leidke veebielement „Laadi kohe alla“. Kasutage elemendi juurde liikumiseks interaktsioonide API-t (hiirt liigutades). Seejärel leidke veebielement, mis vastab kuvatava kohtspikri lingile, ja kontrollige selle teksti oodatava väärtuse suhtes.

jQuery plugina tööriistavihje kontrollimine

Siin on kood:

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

        // Hover over the "Download now" link to reveal the tooltip
        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();
    }
}

Code Selgitus:

  1. Leidke veebielement (WebElement), mis vastab elemendile „Laadi kohe alla”, mille kohal hiirekursor hõljutab.
  2. Kasutage interaktsioonide API-t, et viia kursor valiku „Laadi kohe alla“ peale.
  3. Kui kohtspikri on nähtav, leidke kohtspikri sees olevat linki esindav veebielement („a“ silt).
  4. Loe kohtspikri teksti koos getText() ja võrrelge seda salvestatud eeldatava väärtusega expectedTooltip.

KKK

Kui kohtspikri loomiseks kasutatakse HTML-i atribuuti title, kutsuge veebielemendil getAttribute(“title”) või getDomAttribute(“title”) ja võrrelge tagastatud teksti oodatava väärtusega.

Kasutage klassi Actions funktsiooni moveToElement(target).perform() kasutamiseks, oodake, kuni kohtspikri element nähtavaks muutub, seejärel lugege selle tekst või atribuut funktsiooniga getText() ja kinnitage väärtus.

See tagastab nullväärtuse, kui elemendil puudub pealkirja atribuut või kohtspikri tekst renderdatakse dünaamiliselt eraldi div-elemendi kaudu. Kontrollige DOM-i ja sihtige tegelikku kohtspikri konteinerit.

Tehisintellektil põhinevad tööriistad genereerivad automaatselt lokaatoreid, parandavad ise selektoreid DOM-i muutumisel ja pakuvad kursori hõljutamise järjestusi, vähendades ebaühtlaseid kohtspikri teste ja hooldusaega brauserites.

Jah. Kaasaegsed tehisintellekti assistendid skannivad lehte, tuvastavad hõljuva kujutisega elemente ja genereerivad koheseks kasutamiseks valmis kujundusi. Selenium skriptid väidetega, vähendades oluliselt kohtspikri katvuse käsitsi skriptimise vaeva.

Võta see postitus kokku järgmiselt: