Selenium:获取元素的工具提示?

我试图从网站中的元素中提取文本。 HTML代码是这样的:

 

以下是我的TestNG代码:

 package TestNG; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.interactions.Action; import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.annotations.Test; import org.testng.annotations.BeforeTest; import org.testng.annotations.AfterTest; public class Tooltip { WebDriver driver; WebDriverWait wait; By stayOn=By.cssSelector("span[class='redir-a-button-sec-center']"); By cart=By.cssSelector("span[class='nav-line-2']"); @Test public void cart() throws Exception { driver.navigate().to("http://amazon.com"); driver.manage().window().maximize(); new WebDriverWait(driver, 5); driver.findElement(stayOn).click(); Actions builder=new Actions(driver); WebElement elem=driver.findElement(By.xpath(".//*[@id='nav-cart']")); Action action = builder.moveToElement(elem).build(); action.perform(); Thread.sleep(2000); WebElement elem1=driver.findElement(By.cssSelector("p[class='nav_p ']")); String str=elem1.getAttribute("paragraph"); System.out.println(str); } @BeforeTest public void beforeTest() { System.setProperty("webdriver.chrome.driver", "E:\\selenium\\lib\\chromedriver_win32\\chromedriver.exe"); driver=new ChromeDriver(); } @AfterTest public void afterTest() { driver.quit(); } } 

工具提示大多是硬编码的,如果是这种情况,你(可能)想要做的唯一事情是测试是否显示。 根据我的知识,以下是最好的解决方案。

 public void TestToolTip() { //Assuming that's the only element with that class name //If that's not case adjust the selector accordingly //you also have to make sure the element exist as well //otherwise it will throw NoSuchElement(or similar) exception By by = By.cssSelector("p.nav_p"); WebElement toolTipElement = driver.findElement(by); //the following action should make the tooltip visible //if this is not the element on which the click //event generates tool to visible, adjust accordingly. toolTipElement.click(); //In this stage just check if the element is visible/displayed or not if (!toolTipElement.isDisplayed() || !toolTipElement.getText().contains("Give it purpose—fill it with books, movies, mobiles, cameras, toys and fashion jewellery.")) { //is not displayed or does not contain the expected text so fail the test Assert.fail(); } else { } }