3

我有以下 HTML 代码片段:

<div style="float:right; padding-right: 50px; margin-top: -10px;" id="divTooltips">
<img width="25px" height="25px" src="/mkteditor/css/images/tooltip.png" alt="">
</div>

在鼠标悬停在 tooltip.png 期间,会显示工具提示文本“顶部的帮助文本”。我想验证 WebDriver 中的 tooltipText。怎么做?

4

5 回答 5

3

每当您有工具提示时,就会出现“标题”属性。(根据我的观察)。

例如:转到http://www.linkedin.com/并在顶部查看 LinkedIn 图像的 HTML 代码。领英

    WebDriver driver = new InternetExplorerDriver();
    driver.get("http://www.linkedin.com/");
    WebElement onElement = driver.findElement(By.xpath("html/body/div[1]/div[1]/div/h2/a"));
    System.out.println("Tooltip : " + onElement.getAttribute("title"));
于 2012-11-27T09:18:26.230 回答
3

我的观察表明,每当您关注元素并出现工具提示时,它都会显示在“div”内,该“div”在鼠标焦点上可见。

这是我要建议的,

  1. 使用动作类移动到元素

    动作动作=新动作(驱动程序);action.moveToElement('element_to_be_focused').build().perform();

  2. 现在,由于工具提示显示了一些文本,请阅读该文本并从页面源 HTML 中找出提到它的元素。

  3. 现在只需编写代码来等待具有工具提示文本的元素的可见性。

    新的 WebDriverWait(驱动程序,timeOutInSeconds).until(ExpectedConditions.visibilityOfElementLocated('element_locator'));

  4. 使用从工具提示元素获取文本getText()

举个例子,点击这里

在给定的网站上,一旦我们将鼠标悬停在询问年龄的文本框上,我们可以看到工具提示“我们仅出于统计目的询问您的年龄”。

以下是获取工具提示文本的代码片段:

WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get("https://jqueryui.com/tooltip/");
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@class='demo-frame']")));
new Actions(driver).moveToElement(driver.findElement(By.xpath("//input[@id='age']"))).build().perform();
boolean isToolTipDisplayed = driver.findElement(By.xpath("//div[@class='ui-tooltip-content']")).isDisplayed();
System.out.println("Is Tooltip displayed ? : " + isToolTipDisplayed);
            if (isToolTipDisplayed) {
                String tooltipText = driver.findElement(By.xpath("//div[@class='ui-tooltip-content']")).getText();
System.out.println("Tooltip Text:- " + tooltipText);
}
driver.switchTo().defaultContent();
driver.quit();

希望对你有帮助 !

于 2016-12-20T09:53:27.927 回答
0

您可以使用以下内容来验证工具提示文本:

try{
    String tooltipText = "help text at top place";
    String tooltipTextToVerify = driver.findElement(By.id("divTooltips").getAttribute("title");
      if (tooltipText.equels(tooltipTextToVerify)){
         return true;
      else {return false;}
}
于 2014-12-25T15:49:31.577 回答
0

你可以用这个

WebElement element = driver.FindElement(By.id("divTooltips");
 string titleText = element.getAttribute("title");

现在标题存储在 titleText 字符串中。如果工具提示被隐藏并且您想查看隐藏的文本,请检查

享受!

于 2014-02-07T13:52:06.163 回答
0

您可以尝试以下方法:

WebElement tooltipControl = driver.FindElement(By.id("divTooltips");
string titleText = tooltipControl.GetAttribute("textContent");

textContent属性将提供工具提示中显示的文本。

希望这会帮助你。

于 2018-02-13T04:59:10.063 回答