Como verificar a dica de ferramenta em Selenium
โก Resumo Inteligente
Verifique a dica de ferramenta em Selenium O WebDriver abrange dois padrรตes confiรกveis โโpara verificar o texto da dica de ferramenta: ler diretamente o atributo `title` do HTML e usar a API Actions para passar o mouse sobre elementos que renderizam dinamicamente. JavaDicas de ferramentas em script ou jQuery.

Dica em Selenium
A Dica em Selenium ร um pequeno texto que aparece quando o cursor do mouse passa sobre um objeto em uma pรกgina da web. O objeto pode ser um link, uma imagem, um botรฃo ou uma รกrea de texto. O texto da dica de ferramenta geralmente fornece mais informaรงรตes sobre o elemento sob o cursor.
Tradicionalmente, as dicas de ferramentas eram implementadas como um atributo "tรญtulo" em um elemento. O valor desse atributo era exibido como uma dica de ferramenta ao passar o mouse sobre o elemento. Trata-se de um texto estรกtico que fornece informaรงรตes sobre o elemento, sem qualquer formataรงรฃo.
Atualmente, muitos plugins estรฃo disponรญveis para a implementaรงรฃo de dicas de ferramentas. Dicas de ferramentas avanรงadas com estilos, renderizaรงรฃo, imagens e links sรฃo criadas usando... JavaPlugins de script ou jQuery, ou com dicas de ferramentas usando apenas CSS.
- Para acessar ou verificar dicas de ferramentas estรกticas implementadas por meio do atributo "title" do HTML, use o
getAttribute("title")Mรฉtodo aplicado ao WebElement. O valor retornado (o texto da dica de ferramenta) รฉ comparado com um valor esperado para verificaรงรฃo. - Para outras implementaรงรตes de dicas de ferramentas, use a "API de Interaรงรตes Avanรงadas do Usuรกrio" fornecida pelo WebDriver para criar o efeito de passar o mouse sobre o elemento e, em seguida, recuperar a dica de ferramenta correspondente.
Um resumo da API de interaรงรตes avanรงadas com o usuรกrio
A API de Interaรงรตes Avanรงadas do Usuรกrio expรตe aรงรตes do usuรกrio como arrastar e soltar, passar o cursor sobre um elemento, seleรงรฃo mรบltipla, pressionar e soltar teclas e outras aรงรตes de teclado ou mouse em uma pรกgina da web.
Vocรช pode se referir a isso referรชncia oficial da classe Actions para obter mais detalhes sobre a API.
Antes de pularping Em termos de cenรกrios, vamos analisar as classes e os mรฉtodos necessรกrios para mover um elemento deslizante por um determinado deslocamento.
Passo 1) Para usar a API, importe os seguintes pacotes e classes:
Passo 2) Crie um objeto da classe โActionsโ e construa a sequรชncia de aรงรตes do usuรกrio. A classe Actions constrรณi aรงรตes encadeadas, como moveToElement() e dragAndDrop(). O objeto de controle รฉ passado como parรขmetro para o seu construtor.
Passo 3) Crie um objeto Action usando o mรฉtodo build() da classe โActionsโ. Chame o mรฉtodo perform() para executar todas as aรงรตes enfileiradas no construtor.
Jรก vimos como usar alguns dos mรฉtodos de aรงรฃo do usuรกrio fornecidos pela API: clickAndHold(element), moveByOffset(10, 0) e release(). A API expรตe muitos outros.
Implementaรงรฃo de dicas de ferramentas vs. Selenium Abordagem de verificaรงรฃo
| Tipo de dica de ferramenta | Como รฉ renderizado | Selenium Abordagem |
|---|---|---|
| Atributo de tรญtulo HTML | Texto armazenado no prรณprio elemento; o navegador exibe ao passar o cursor sobre ele. | Leia com getAttribute("title") or getDomAttribute("title")Nรฃo รฉ necessรกrio passar o cursor sobre o objeto. |
| Plugin jQuery/JS | Ao passar o mouse sobre o elemento, uma div dedicada รฉ exibida ao lado dele. | Usar aรงรตes moveToElement(target).perform()Aguarde e, em seguida, leia o elemento da dica de ferramenta com getText(). |
| dica de ferramenta somente em CSS | Pseudo-elemento ou div irmรฃ alternada com :hover. |
Acione o evento de passar o cursor sobre ele com Aรงรตes e leia o texto renderizado ou o estilo calculado. |
Como verificar (manipular) a dica de ferramenta em Selenium
Vamos analisar como acessar e verificar dicas de ferramentas em dois cenรกrios comuns:
- Cenรกrio 1: A dica de ferramenta รฉ implementada usando o atributo โtรญtuloโ.
- Cenรกrio 2: A dica de ferramenta รฉ implementada usando um plugin jQuery.
Cenรกrio 1: Atributo "tรญtulo" em HTML
Neste caso, utilizamos o site de exemplo. https://demo.guru99.com/test/social-icon.html e verifique a dica de ferramenta do รญcone โgithubโ no canto superior direito da pรกgina.
Primeiro localizamos o elemento, depois lemos seu atributo "tรญtulo" e o comparamos com o texto esperado da dica de ferramenta.
Como a dica de ferramenta estรก no atributo "tรญtulo", nem sequer automatizamos o evento de passar o mouse sobre ela; simplesmente recuperamos o valor do atributo com o mรฉtodo getAttribute().
Aqui estรก o cรณdigo:
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(); } }
Explicaรงรฃo do cรณdigo:
- Encontre o WebElement que representa o รญcone โgithubโ.
- Leia o atributo โtitleโ com o mรฉtodo getAttribute().
- Compare o valor com o texto da dica de ferramenta esperado.
Selenium 4 dica: Prefere getDomAttribute("title") para o atributo HTML literal, e deixe Selenium O gerenciador resolve o problema do driver em vez de codificรก-lo diretamente no cรณdigo. chromedriver.exe.
Cenรกrio 2: Plugin jQuery
Muitos plugins jQuery implementam dicas de ferramentas, e cada um renderiza de forma ligeiramente diferente.
Alguns plugins mantรชm o cรณdigo HTML da dica de ferramenta sempre ao lado do elemento que aciona o gatilho, enquanto outros criam uma tag "div" dinamicamente quando o cursor entra no gatilho.
Para esta demonstraรงรฃo, usaremos o estilo โjQuery Tools Tooltipโ.
Abra https://demo.guru99.com/test/tooltip.htmlAo passar o cursor sobre "Baixar agora", uma dica de ferramenta avanรงada รฉ exibida com uma imagem, um fundo de destaque, uma pequena tabela e um link clicรกvel.
Se vocรช inspecionar o cรณdigo-fonte, verรก que a div que representa a dica de ferramenta jรก estรก posicionada ao lado do link "Baixar agora". A tag de script abaixo controla quando ela aparece.
Agora vamos verificar o texto do link exibido na dica de ferramenta.
Primeiro, localize o WebElement correspondente a โBaixar agoraโ. Use a API de Interaรงรตes para navegar atรฉ o elemento (ao passar o mouse sobre ele). Em seguida, encontre o WebElement que corresponde ao link dentro da dica de ferramenta exibida e verifique se o texto estรก de acordo com o valor esperado.
Aqui estรก o cรณdigo:
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 Explicaรงรฃo:
- Localize o elemento da Web correspondente ao elemento โBaixar agoraโ sobre o qual vocรช passarรก o cursor do mouse.
- Use a API de Interaรงรตes para posicionar o cursor sobre โBaixar agoraโ.
- Assim que a dica de ferramenta estiver visรญvel, localize o elemento da Web que representa o link dentro da dica de ferramenta (a tag โaโ).
- Leia o texto da dica de ferramenta com
getText()e compare-o com o valor esperado armazenado emexpectedTooltip.








