1

I am unable to get the tool tip from a tag. The snippet of the HTML is

  <table class="tiger-stripe" width="100%" cellspacing="0" cellpadding="0" border="0">
  <tbody>
  <tr class="oddrow">
  <tr>
  <td>
  <td>
  <div id="div_2" class="betterTip fltlt">
   <p id="a_2" class="betterTip" lang="$div_2_Tip?width=300" title="">
  </div>
  <div id="div_2_Tip" class="ToolTip" style="display:none">
  <p class="Tooltip">Evaluate value : 400.00</p>
  <p class="Tooltip">Actual value : 646.69</p>
 <p class="Tooltip">Description : Payment Amount Back must be < Max Payment.</p>
 </div>
 </td>

Here in the above html code the tool tip location is in the first paragraph tab but the tool tip text is present in the next paragraph tag

I am trying to get the tool tip from various methods like getText(), getAttribute() but no use. Can any one help me out?enter image description here

Code :

Actions a =new Actions(driver);    

a.moveToElement(driver.findElement(By.xpath("//table[@class='tiger-stripe']/tbod‌​y/tr[2]/td[2]/div[@id='div_2']/p[@id='a_2']"))).perform(); 

String toolTipText1= driver.findElement(By.xpath("//table[@class='tiger-stripe']/tbody/tr[2]/td[2]/di‌v[@id='div_2']/p[@id='a_2']")).getAttribute("title"); 

System.out.println("tool tip text: "+toolTipText1)
4
  • what code you have written? Commented Sep 4, 2015 at 9:10
  • Actions a =new Actions(driver); a.moveToElement(driver.findElement(By.xpath("//table[@class='tiger-stripe']/tbody/tr[2]/td[2]/div[@id='div_2']/p[@id='a_2']"))).perform(); String toolTipText1 = driver.findElement(By.xpath("//table[@class='tiger-stripe']/tbody/tr[2]/td[2]/div[@id='div_2']/p[@id='a_2']")).getAttribute("title"); System.out.println("tool tip text: "+toolTipText1)
    – Bunny
    Commented Sep 4, 2015 at 9:25
  • please don't concentrate on the code, i have attached the html snap, check it once
    – Bunny
    Commented Sep 4, 2015 at 9:26
  • Seems you are using incorrect xpath Commented Sep 4, 2015 at 10:08

4 Answers 4

0

Your xpath doesn't seem to be correct.

String toolTipText1= driver.findElement(By.xpath("//table[@class='tiger-stripe']/tbody/tr[2]/td[2]/di‌v[@id='div_2']/p[@id='a_2']")).getAttribute("title");

If you see your HTML, the text that is shown in the tooltip is contained in another div id then what you are using. Also, you're trying to get the title attribute, which as per the HTML is blank.

Try using this

   String toolTipText1= driver.findElement(By.xpath("//table[@class='tiger-stripe']/tbody/tr[2]/td[2]/di‌v[@id='div_2_Tip']/p[@class='Tooltip']")).getText();
5
  • I tried earlier, no it is not working, please give me a solution
    – Bunny
    Commented Sep 4, 2015 at 13:53
  • what are you gwtting when you're using this Commented Sep 4, 2015 at 15:38
  • Nothing, null is getting as a value
    – Bunny
    Commented Sep 9, 2015 at 11:13
  • String toolTipText1= driver.findElement(By.xpath("//table[@class='tiger-stripe']/tbody/tr[2]/td[2]/di‌v[@id='div_2_Tip']/p[1]. getText( ) does this print anything? Commented Sep 9, 2015 at 11:52
  • yes it prints "null" as a value
    – Bunny
    Commented Sep 10, 2015 at 6:13
0

You have to use Actions for this. in this am printing the mouse hover message in Google

    Actions ToolTip1 = new Actions(driver);
    WebElement googleLogo = driver.findElement(By.xpath("//div[@id='hplogo']"));

    Thread.sleep(2000);

    ToolTip1.clickAndHold(googleLogo).perform();

Perform mouse hover action using 'clickAndHold' method.

Get the value of Tool tip by using 'getAttribute' command

    String ToolTipText = googleLogo.getAttribute("title");

    Assert.assertEquals(ToolTipText, "Google");

    Thread.sleep(2000);
    System.out.println("Tooltip value is: " + ToolTipText);
0

Try this:

List<WebElement> webElements=driver.findElements(By.xpath("//*[@class='Tooltip']"));   
         for(int i=0;i< webElements.size(); i++)   
         {  
         System.out.println(webElements.get(i).getText());  
         }

This should print the text for all the tool-tips present here as the class name for all the tool-tips is "Tooltip"

0

We use getAttribute("title"); to get the tooltip text of a webelement. In this please make sure that the webelement is not inside another iframe.

I found one more thing from the html snapshot you provided. That is the element is having an attribute called "title", whose value is "" (Empty string). So probably you will get printed the empty string.

If the above things followed and not solved your problem. Kindly let us know the exception thrown(if any).

Not the answer you're looking for? Browse other questions tagged or ask your own question.