How to extract the tooltip text within an Angular 7 application using Selenium

流过昼夜 提交于 2019-12-11 06:49:08

问题


I'm trying to read text tooltip in angular7 application via selenium. But get text is returning blank and javascript executor is returning null.

Link to the image of the DOM for which I'm not able to find the xpath

But get text is returning blank and javascript executor is returning null.

This is returning blank

driver().get("https://vmware.github.io/clarity/documentation/v0.12/tooltips");
Wait(3000);
System.out.println(driver().findElement(By.xpath("(//span[@class='tooltip-content'])[2]")).getText());

This is returning null

System.out.println(driver().findElement(By.xpath("(//span[@class='tooltip-content'])[2]")).getAttribute("value"));

String theTextIWant = ((JavascriptExecutor) driver()).executeScript("return arguments[0].innerHTML;",driver().findElement(By.xpath("(//span[@class='tooltip-content'])[2]")));

回答1:


To extract the tooltip text Lorem ipsum sit within the Angular7 Application using Selenium you have to:

  • Induce WebDriverWait for the desired element to be visible
  • Mouse Hover the element.
  • Induce WebDriverWait for the desired tooltip to be visible
  • Then extract the Tool Tip Text
  • You can use the following solution:

    • Code Block:

      import org.openqa.selenium.By;
      import org.openqa.selenium.WebDriver;
      import org.openqa.selenium.chrome.ChromeDriver;
      import org.openqa.selenium.chrome.ChromeOptions;
      import org.openqa.selenium.interactions.Actions;
      import org.openqa.selenium.support.ui.ExpectedConditions;
      import org.openqa.selenium.support.ui.WebDriverWait;
      
      public class Angular_ToolTip {
      
          public static void main(String[] args) {
      
              System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
              ChromeOptions options = new ChromeOptions();
              options.addArguments("start-maximized");
              //options.addArguments("disable-infobars");
              options.addArguments("--disable-extensions");
              WebDriver driver = new ChromeDriver(options);
              driver.get("https://vmware.github.io/clarity/documentation/v0.12/tooltips");
              new Actions(driver).moveToElement(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//h6[text()='Small']//following::div[1]/a[@class='tooltip tooltip-sm']")))).build().perform();
              System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//h6[text()='Small']//following::div[1]/a[@class='tooltip tooltip-sm']//following::span[1]"))).getAttribute("innerHTML"));
          }
      }
      
  • Console Output:

    Lorem ipsum sit
    
  • Browser Snapshot:



来源:https://stackoverflow.com/questions/55412742/how-to-extract-the-tooltip-text-within-an-angular-7-application-using-selenium

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!