我正在尝试从网站中的元素中提取文本。 HTML代码是这样的:
<p class= "nav_p">
" Give it purpose—fill it with books, movies, mobiles, cameras, toys and fashion jewellery."
</p>
以下是我的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();
}
}
答案 0 :(得分:2)
工具提示大多是硬编码的,如果是这种情况,你(可能)想要做的唯一事情是测试是否显示。根据我的知识,以下是最好的解决方案。
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
{
}
}