我的观察表明,每当您关注元素并出现工具提示时,它都会显示在“div”内,该“div”在鼠标焦点上可见。
这是我要建议的,
使用动作类移动到元素
动作动作=新动作(驱动程序);action.moveToElement('element_to_be_focused').build().perform();
现在,由于工具提示显示了一些文本,请阅读该文本并从页面源 HTML 中找出提到它的元素。
现在只需编写代码来等待具有工具提示文本的元素的可见性。
新的 WebDriverWait(驱动程序,timeOutInSeconds).until(ExpectedConditions.visibilityOfElementLocated('element_locator'));
使用从工具提示元素获取文本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();
希望对你有帮助 !