Työkaluvihjeen vahvistaminen Selenium
⚡ Älykäs yhteenveto
Tarkista työkaluvihje kohdassa Selenium WebDriver käsittelee kahta luotettavaa työkaluvihjeen tekstin lisäämisen mallia: HTML-otsikkoattribuutin lukemisen suoraan ja Actions API:n käytön hiiren viemiseksi dynaamisesti renderöityjen elementtien päälle. JavaSkripti- tai jQuery-työkaluvihjeet.

Työkaluvinkki sisään Selenium
A Työkaluvinkki sisään Selenium on lyhyt teksti, joka tulee näkyviin, kun hiiri viedään verkkosivulla olevan objektin päälle. Objekti voi olla linkki, kuva, painike tai tekstialue. Työkaluvihjeen teksti antaa usein lisätietoja kohdistimen alla olevasta elementistä.
Työkaluvihjeet toteutettiin perinteisesti elementin "otsikko"-attribuuttina. Tämän attribuutin arvo näytettiin työkaluvihjeenä hiiren osoittimen vietäessä sen päälle. Tämä on staattinen teksti, joka antaa tietoa elementistä ilman tyylittelyä.
Nykyään työkaluvihjeiden toteuttamiseen on saatavilla useita lisäosia. Edistyneet työkaluvihjeet, joissa on tyylejä, renderöintiä, kuvia ja linkkejä, rakennetaan käyttämällä JavaSkripti- tai jQuery-laajennukset tai vain CSS:lle tarkoitetut työkaluvihjeet.
- HTML-koodin ”title”-attribuutin kautta toteutettujen staattisten työkaluvihjeiden käyttämiseen tai tarkistamiseen käytä
getAttribute("title")menetelmä WebElementissä. Palautettua arvoa (työkaluvihjeen tekstiä) verrataan odotettuun arvoon vahvistusta varten. - Muiden työkaluvihjeiden toteutuksissa käytä WebDriverin tarjoamaa ”Advanced User Interactions API” -rajapintaa hiiren osoittimen päälle viemisen tehosteen luomiseen ja sitten elementin työkaluvihjeen hakemiseen.
Lyhyt kuvaus Advanced User Interactions API:sta
Advanced User Interactions API mahdollistaa käyttäjän toiminnot, kuten vetämisen ja pudottamisen, hiiren osoittimen käyttämisen, monivalinnan, näppäinpainalluksen ja -vapautuksen sekä muut näppäimistö- tai hiiritoiminnot verkkosivulla.
Voit viitata tähän virallinen Actions-luokan viite saadaksesi lisätietoja API:sta.
Ennen hyppyäping Skenaarioissa tarkastellaan luokkia ja metodeja, joita tarvitsemme liukusäädinelementin siirtämiseen offsetin verran.
Vaihe 1) Käyttääksesi API:a, tuo seuraavat paketit ja luokat:
Vaihe 2) Luo ”Actions”-luokan objekti ja rakenna käyttäjän toimintojen sarja. Actions-luokka rakentaa ketjutettuja toimintoja, kuten moveToElement() ja dragAndDrop(). Ajuriobjekti annetaan parametrina sen rakentajalle.
Vaihe 3) Luo Action-objekti käyttämällä Actions-luokan build()-metodia. Kutsu perform()-metodia suorittaaksesi kaikki rakentajan jonossa olevat toiminnot.
Olemme nähneet, miten käytetään joitakin API:n tarjoamia käyttäjän Action-metodeja: clickAndHold(element), moveByOffset(10, 0) ja release(). API tarjoaa monia muitakin.
Työkaluvihjeiden käyttöönotto vs. Selenium Todentamismenetelmä
| Työkaluvihjeen tyyppi | Miten se renderöityy | Selenium Lähestymistapa |
|---|---|---|
| HTML-otsikkoattribuutti | Teksti on tallennettu itse elementtiin; selain näyttää sen, kun hiiren osoitin viedään sen päälle. | Lue kanssa getAttribute("title") or getDomAttribute("title")Leijumista ei tarvita. |
| jQuery / JS-laajennus | Omistettu div-elementti näkyy elementin vieressä, kun hiiren osoitin viedään sen päälle. | Käytä toimintoja moveToElement(target).perform(), odota ja lue sitten työkaluvihje-elementti getText(). |
| Vain CSS:lle tarkoitettu työkaluvihje | Pseudoelementti tai sisarusdiv vaihdettavissa :hover. |
Vie hiiri toimintojen päälle ja lue renderöity teksti tai laskettu tyyli. |
Työkaluvinkin vahvistaminen (käsitteleminen) Selenium
Käydään läpi työkaluvihjeiden käyttö ja tarkistaminen kahden yleisen skenaarion avulla:
- Skenaario 1: Työkaluvihje toteutetaan käyttämällä ”title”-attribuuttia.
- Skenaario 2: Työkaluvihje on toteutettu jQuery-laajennuksella.
Skenaario 1: HTML-attribuutti ”title”
Tässä tapauksessa käytämme esimerkkisivustoa https://demo.guru99.com/test/social-icon.html ja tarkista sivun oikeassa yläkulmassa olevan "github"-kuvakkeen työkaluvihje.
Ensin paikannamme elementin, luemme sen ”title”-attribuutin ja vertaamme sitä odotettuun työkaluvihjeen tekstiin.
Koska työkaluvihje on ”title”-attribuutissa, emme edes automatisoi hiiren osoittimen viemistä sen päälle; haemme attribuutin arvon getAttribute()-metodilla.
Tässä on koodi:
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(); } }
Koodin selitys:
- Etsi WebElement, joka edustaa "github"-kuvaketta.
- Lue sen ”title”-attribuutti getAttribute()-metodilla.
- Vahvista arvo odotettua työkaluvihjeen tekstiä vasten.
Selenium 4 vinkki: Mieluummin getDomAttribute("title") literaali-HTML-attribuutille ja anna Selenium Esimies ratkaisee ajurin kovakoodauksen sijaan chromedriver.exe.
Skenaario 2: jQuery-laajennus
Monet jQuery-laajennukset toteuttavat työkaluvihjeitä, ja jokainen niistä renderöityy hieman eri tavalla.
Jotkin laajennukset pitävät työkaluvihjeen merkinnän aina trigger-elementin vieressä, kun taas toiset luovat "div"-tunnisteen dynaamisesti, kun kursori siirtyy triggeriin.
Tässä demonstraatiossa käytämme ”jQuery Tools Tooltip” -tyyliä.
avoin https://demo.guru99.com/test/tooltip.html; hiiren vieminen "Lataa nyt" -kohdan päälle paljastaa edistyneen työkaluvihjeen, jossa on kuva, taustateksti, pieni taulukko ja napsautettava linkki.
Jos tarkastelet lähdekoodia, työkaluvihjettä edustava div-elementti on jo "Lataa nyt" -linkin vieressä. Alla oleva komentosarjatunniste määrittää, milloin se näkyy.
Nyt tarkistamme työkaluvihjeessä näkyvän linkkitekstin.
Etsi ensin ”Lataa nyt” -kohdan WebElement-elementti. Siirry elementtiin Interactions API:n avulla (hiirellä). Etsi seuraavaksi näytetyn työkaluvihjeen linkkiin liittyvä WebElement-elementti ja tarkista sen teksti odotettua arvoa vasten.
Tässä on koodi:
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 Selitys:
- Etsi WebElement, joka vastaa hiiren osoittimen osoittamaa ”Lataa nyt” -elementtiä.
- Vie kohdistin Interactions API:n avulla kohtaan ”Lataa nyt”.
- Kun työkaluvihje on näkyvissä, etsi työkaluvihjeen sisältä linkkiä edustava WebElement-elementti ("a"-tagi).
- Lue työkaluvihjeen teksti toiminnolla
getText()ja vertaa sitä tallennettuun odotusarvoonexpectedTooltip.








