Hur du verifierar verktygstips i Selenium
โก Smart sammanfattning
Verifiera verktygstips i Selenium WebDriver tรคcker tvรฅ pรฅlitliga mรถnster fรถr att bekrรคfta verktygstipstext: att lรคsa HTML-titelattributet direkt och anvรคnda Actions API fรถr att hรฅlla muspekaren รถver element som renderas dynamiskt. JavaSkript- eller jQuery-verktygstips.

Verktygstips i Selenium
A Verktygstips i Selenium รคr en kort text som visas nรคr muspekaren hรฅller muspekaren รถver ett objekt pรฅ en webbsida. Objektet kan vara en lรคnk, en bild, en knapp eller ett textomrรฅde. Verktygstipstexten ger ofta mer information om elementet under markรถren.
Verktygstips implementerades traditionellt som ett "title"-attribut pรฅ ett element. Vรคrdet pรฅ detta attribut visades som ett verktygstips nรคr muspekaren hรถlls รถver det. Detta รคr en statisk text som ger information om elementet utan styling.
Idag finns mรฅnga plugins tillgรคngliga fรถr implementering av verktygstips. Avancerade verktygstips med styling, rendering, bilder och lรคnkar byggs med hjรคlp av JavaSkript- eller jQuery-plugins, eller med endast CSS-verktygstips.
- Fรถr att komma รฅt eller verifiera statiska verktygstips som implementerats via HTML-attributet "title", anvรคnd
getAttribute("title")metoden pรฅ WebElement. Det returnerade vรคrdet (verktygstipstexten) jรคmfรถrs med ett fรถrvรคntat vรคrde fรถr verifiering. - Fรถr andra implementeringar av verktygstips, anvรคnd "Advanced User Interactions API" som tillhandahรฅlls av WebDriver fรถr att skapa muspekareffekten och hรคmta sedan verktygstipset fรถr elementet.
Kort om Advanced User Interactions API
Advanced User Interactions API exponerar anvรคndarรฅtgรคrder som dra och slรคpp, hovra รถver, markera flera element, trycka och slรคppa tangenter och andra tangentbords- eller musรฅtgรคrder pรฅ en webbsida.
Du kan hรคnvisa till detta officiell referens fรถr Actions-klassen fรถr mer information om API.
Fรถre hoppping I scenarier, lรฅt oss titta pรฅ de klasser och metoder vi behรถver fรถr att flytta ett skjutreglageelement med en fรถrskjutning.
Steg 1) Fรถr att anvรคnda API:et, importera fรถljande paket och klasser:
Steg 2) Skapa ett objekt av klassen "Actions" och bygg sekvensen av anvรคndarรฅtgรคrder. Klassen Actions bygger lรคnkade รฅtgรคrder som moveToElement() och dragAndDrop(). Drivrutinsobjektet skickas som en parameter till dess konstruktor.
Steg 3) Skapa ett Action-objekt med hjรคlp av build()-metoden i klassen "Actions". Anropa perform()-metoden fรถr att utfรถra varje kรถad รฅtgรคrd i byggaren.
Vi har sett hur man anvรคnder nรฅgra av de anvรคndarรฅtgรคrdsmetoder som tillhandahรฅlls av API:et: clickAndHold(element), moveByOffset(10, 0) och release(). API:et exponerar mรฅnga fler.
Verktygstipsimplementering vs. Selenium Verifieringsmetod
| Typ av verktygstips | Hur det renderas | Selenium Tillvรคgagรฅngssรคtt |
|---|---|---|
| HTML-titelattribut | Text lagrad pรฅ sjรคlva elementet; webblรคsaren visas nรคr man hรฅller muspekaren รถver det. | Lรคs med getAttribute("title") or getDomAttribute("title")Ingen muspekare behรถvs. |
| jQuery / JS-plugin | En dedikerad div visas bredvid elementet nรคr du hรฅller muspekaren รถver det. | Anvรคnd รฅtgรคrder moveToElement(target).perform(), vรคnta och lรคs sedan verktygstipselementet med getText(). |
| CSS-only tooltip | Pseudoelement eller syskon-div vรคxlad med :hover. |
Utlรถs muspekaren med ร tgรคrder och lรคs den renderade texten eller den berรคknade stilen. |
Hur du verifierar (hanterar) verktygstips i Selenium
Lรฅt oss gรฅ igenom hur man fรฅr รฅtkomst till och verifierar verktygstips med tvรฅ vanliga scenarier:
- Scenario 1: Verktygstips implementeras med attributet โtitleโ.
- Scenario 2: Verktygstips implementeras med hjรคlp av ett jQuery-plugin.
Scenario 1: HTML-attributet "title"
I det hรคr fallet anvรคnder vi exempelwebbplatsen https://demo.guru99.com/test/social-icon.html och verifiera verktygstipset fรถr "github"-ikonen lรคngst upp till hรถger pรฅ sidan.
Vi lokaliserar fรถrst elementet, lรคser sedan dess "title"-attribut och jรคmfรถr det med den fรถrvรคntade verktygstipstexten.
Eftersom verktygstipset finns i attributet "title" automatiserar vi inte ens muspekaren; vi hรคmtar helt enkelt attributvรคrdet med metoden getAttribute().
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]")); // 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(); } }
Fรถrklaring av kod:
- Hitta WebElement som representerar "github"-ikonen.
- Lรคs dess "title"-attribut med metoden getAttribute().
- Hรคvda vรคrdet mot den fรถrvรคntade verktygstipstexten.
Selenium 4 tips: Fรถredra getDomAttribute("title") fรถr det litterala HTML-attributet, och lรฅt Selenium Manager lรถser drivrutinen istรคllet fรถr att hรฅrdkoda chromedriver.exe.
Scenario 2: jQuery-plugin
Mรฅnga jQuery-plugins implementerar verktygstips, och var och en renderas nรฅgot annorlunda.
Vissa plugin-program behรฅller verktygstipsmarkeringen bredvid trigger-elementet hela tiden, medan andra skapar en "div"-tagg dynamiskt nรคr markรถren placeras pรฅ triggern.
Fรถr den hรคr demonstrationen anvรคnder vi stilen โjQuery Tools Tooltipโ.
รppet https://demo.guru99.com/test/tooltip.html; om du hรฅller muspekaren รถver "Ladda ner nu" visas ett avancerat verktygstips med en bild, en bakgrund med en bildtext, en liten tabell och en klickbar lรคnk.
Om du granskar kรคllkoden finns div-filen som representerar verktygstipset redan bredvid lรคnken "Ladda ner nu". Skripttaggen nedan styr nรคr den visas.
Nu verifierar vi lรคnktexten som visas i verktygstipset.
Leta fรถrst reda pรฅ WebElement fรถr "Ladda ner nu". Anvรคnd Interactions API fรถr att flytta till elementet (hรฅll muspekaren รถver det). Leta sedan reda pรฅ WebElement som mappas till lรคnken inuti den visade verktygstipsen och verifiera dess text mot det fรถrvรคntade vรคrdet.
Hรคr รคr koden:
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 Fรถrklaring:
- Leta reda pรฅ det WebElement som รคr kopplat till elementet โLadda ner nuโ som du hรฅller muspekaren รถver.
- Anvรคnd Interactions API fรถr att hรฅlla markรถren รถver "Ladda ner nu".
- Nรคr verktygstipset รคr synligt, leta reda pรฅ WebElement som representerar lรคnken inuti verktygstipset ("a"-taggen).
- Lรคs verktygstipstexten med
getText()och jรคmfรถr det med det fรถrvรคntade vรคrdet som lagrats iexpectedTooltip.








