我试图从网站中的元素中提取文本。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();
}
}
工具提示大多是硬编码的,如果是这样的话,你唯一想做的就是测试它是否显示出来。据我所知,以下是最好的解决方案。
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
{
}
}
首先,我不能使用。getAttribute(“标题”),因为标题属性中没有文本;其次当我将XPath赋给图像并应用时,getText()不起作用。getText()。 谁能帮我一下吗?
selenium是一个非常棒的Web软件测试工具,他对Ajax支持非常好,本人强烈推荐。 软件测试里很重要的一部,就是定位页面的元素,selenium提供如下强大的定位元素的方法。 ● id=id ● name=name ● dom=javascriptExpression ● xpath=xpathExpression ● link=textPattern ● c
根据以下示例HTML查找元素下面的元素:
我在使用@findby获取和使用Select元素时遇到了困难。 标记: 注意:我当然正在初始化页面对象:
我有一个标签叫信息。我需要点击信息标签。相同的xpath适用于其他场景,该场景具有相同的信息选项卡和相同的html代码,当我尝试在其他场景中使用该xpath时,却没有发现这样的元素异常。 请帮我解决这个问题 xpath: HTML:
问题内容: 看起来Instagram网站上的for每天都在变化。现在是,明天将是另一回事。例如(我把它缩短了,链接很长): 话虽如此,我需要修复脚本并对其进行硬编码,以便能够抓取该网页。 有人告诉我,我可以用来查找并将其存储以备后用。但是我仍然不知道如何实现这一目标,因此硒或汤可以从中获取并在以后存储或解析。 我现在所得到的就是这个。它有点脏,不是正确的,但是想法就在那里。 运行它时,我得到此输出