Työkaluvihjeen vahvistaminen Selenium web-ajuri
Työkaluvinkki sisään Selenium
A Työkaluvinkki sisään Selenium on teksti, joka tulee näkyviin, kun hiiri vie hiiren web-sivulla olevan objektin päälle. Objekti voi olla linkki, kuva, painike, tekstialue jne. Työkaluvihjeteksti antaa usein lisätietoja objektista, jonka päällä käyttäjä vie hiiren osoittimen.
Työkaluvihjeet toteutettiin perinteisesti elementin "title"-attribuuttina. Tämän määritteen arvo näytettiin työkaluvihjeenä hiiren osoitinta vietäessä. Tämä on staattista tekstiä, joka antaa tietoa elementistä ilman tyyliä.
Nyt on saatavilla monia laajennuksia "työkaluvihjeiden" toteuttamiseen. Kehittyneitä työkaluvihjeitä tyylillä, renderöinnillä, kuvilla ja linkeillä toteutetaan käyttämällä JavaScript/JQuery-laajennuksia tai käyttämällä CSS-työkaluvihjeitä.
- HTML-määritteen "title" avulla toteutettujen staattisten työkaluvihjeiden avaamiseen tai tarkistamiseen voimme yksinkertaisesti käyttää WebElementin getAttribute("title") -menetelmää. Tämän menetelmän palautettua arvoa (joka on työkaluvihjeteksti) verrataan odotusarvoon vahvistusta varten.
- Muissa työkaluvihjeiden toteutuksissa meidän on käytettävä Web-ohjaimen tarjoamaa Advanced User Interactions API:ta hiiren hover-tehosteen luomiseen ja sitten elementin työkaluvihjeen hakemiseen.
Lyhyt kuvaus Advanced User Interactions API:sta
Advanced User Interactions API tarjoaa sovellusliittymän käyttäjien toimiin, kuten vetämällä ja pudottamalla, osoittimella, useilla valinnoilla, näppäimen painalluksella ja vapauttamisella sekä muihin toimiin, joissa käytetään näppäimistöä tai hiirtä verkkosivulla.
Voit viitata tähän linkkiä saadaksesi lisätietoja API:sta.
Katsotaanpa tässä, kuinka käyttää paria luokkaa ja menetelmää, joita tarvitsemme siirtääksesi liukusäädinelementtiä siirtymän verran.
Vaihe 1) Jotta voit käyttää API:ta, seuraavat paketit/luokat on tuotava:
Vaihe 2) Luo Actions-luokan objekti ja rakenna käyttäjän toimintojen järjestys. Toimintoluokkaa käytetään käyttäjien toimien sarjan rakentamiseen, kuten moveToElement(), dragAndDrop() jne. API tarjoaa erilaisia käyttäjän toimiin liittyviä menetelmiä.
Ohjainobjekti toimitetaan parametrina sen rakentajalle.
Vaihe 3) Luo toimintoobjekti "Actions"-luokan build()-menetelmällä. Kutsu perform()-metodia suorittaaksesi kaikki Actions-objektin (builder täällä) rakentamat toiminnot.
Olemme nähneet kuinka käyttää joitain API:n tarjoamia käyttäjän Actions-menetelmiä – clickAndHold(element), moveByOffset(10,0), release(). API tarjoaa monia tällaisia menetelmiä.
Viittaavat linkkiä lisätietoja.
Työkaluvinkin vahvistaminen (käsitteleminen) Selenium
Katsotaanpa esittely työkaluvihjeiden käyttämisestä ja tarkistamisesta yksinkertaisessa skenaariossa
- Skenaario 1: Työkaluvinkki toteutetaan "title"-attribuutilla
- Skenaario 2: Työkaluvihje toteutetaan jQuery-laajennuksella.
Skenaario 1: HTML-attribuutti "title".
Otetaan tässä tapauksessa esimerkkisivusto - https://demo.guru99.com/test/social-icon.html.
Yritämme tarkistaa sivun oikeassa yläkulmassa olevan "github" -kuvakkeen työkaluvihjeen.
Tehdäksemme sen etsimme ensin elementin ja saamme sen 'title'-attribuutin ja vahvistamme sen odotetulla työkaluvihjetekstillä.
Koska oletamme työkalun kärjen olevan "title"-attribuutissa, emme edes automatisoi hiiren osoitintehostetta, vaan yksinkertaisesti noutamme määritteen arvon "getAttribute()"-menetelmällä.
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]")); //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(); } }
Koodin selitys
- Etsi WebElement, joka edustaa "github"-kuvaketta.
- Hanki sen "title"-attribuutti käyttämällä getAttribute()-menetelmää.
- Vahvista arvo suhteessa odotettuun työkaluvihjeen arvoon.
Skenaario 2: JQuery Plugin
Työkaluvihjeiden toteuttamiseen on saatavilla runsaasti JQuery-laajennuksia, ja jokaisella on hieman erilainen toteutustapa.
Jotkut laajennukset odottavat työkaluvihjeen HTML-koodin olevan jatkuvasti sen elementin vieressä, jota työkaluvihje koskee, kun taas toiset luovat dynaamisen "div"-tunnisteen, joka ilmestyy lennossa, kun hiiri vie hiiren elementin päälle.
Harkitse esittelyä varten "jQuery Tools Tooltip" -tapaa työkaluvihjeiden toteuttamiseen.
Tässä URL-osoitteessa - https://demo.guru99.com/test/tooltip.html näet demon, jossa hiiren osoitin "Lataa nyt" -kohdan päällä, saamme edistyneen työkaluvihjeen, jossa on kuva, huomiotekstin tausta, taulukko ja linkki sen sisällä, joka on klikattava.
Jos katsot alla olevaa lähdettä, näet, että työkaluvihjettä edustava div-tunniste on aina "Lataa nyt" -linkin tagin vieressä. Alla olevan komentosarjatunnisteen sisällä oleva koodi ohjaa kuitenkin, milloin sen on avauduttava.
Yritetään vahvistaa vain linkkiteksti työkaluvihjeessä esittelyämme varten.
Löydämme ensin WebElementin, joka vastaa "Lataa nyt". Sitten siirrymme elementtiin Interactions API:n avulla (hiiren hover). Seuraavaksi löydämme WebElementin, joka vastaa näytetyn työkaluvihjeen sisällä olevaa linkkiä, ja tarkistamme sen odotetun tekstin perusteella.
Tässä on koodi
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(); } }
Koodin selitys
- Etsi WebElement, joka vastaa elementtiä "lataa nyt", jota viemme hiirellä.
- Käytä Interactions API:a ja vie hiiri "Lataa nyt" -kohdan päälle.
- Olettaen, että työkaluvihje näytetään, etsi WebElement, joka vastaa työkaluvihjeen sisällä olevaa linkkiä eli "a"-tagi.
- Tarkista linkin työkaluvihjeen teksti, joka on haettu käyttämällä getText()-toimintoa, verrattuna odotusarvoon, jonka olemme tallentaneet "expectedToolTip" -sovellukseen.
Yhteenveto
Tässä opetusohjelmassa olet oppinut käyttämään työkaluvihjeitä käyttämällä Selenium Web-ohjain.
Työkaluvinkkejä toteutetaan eri tavoin –
- Perustoteutus perustuu HTML:n "title"-attribuuttiin. getAttribute(title) saa työkaluvihjeen arvon.
- Muut työkaluvihjeet, kuten JQuery, CSS-työkaluvihjeet vaativat Interactions API:n luomaan hiiren hover-tehosteen
Advanced User Interactions API –
- Actions-luokan moveToElement(element) -elementtiä käytetään viemään hiiren osoitin elementin päälle.
- Actions-luokan Build()-menetelmä rakentaa käyttäjän toimintojen sarjan Action-objektiksi.
- Action-luokan Perform() suorittaa kaikki käyttäjän toimintosarjat kerralla.
Työkaluvihjeen tarkistamiseksi meidän on ensin vietävä hiiren osoitinta elementin kohdalla, sitten löydettävä työkaluvihjettä vastaava elementti ja hankittava sen teksti tai muut arvot, jotta ne verrataan odotettuihin arvoihin.