如何使用SeleniumWebDriver和Java从元素中获取文本?

如何使用SeleniumWebDriver和Java从元素中获取文本?,java,selenium,webdriver,Java,Selenium,Webdriver,我的代码: WebDriver driver = new SafariDriver(); driver.get("http://bet.hkjc.com/football/default.aspx"); WebElement matchs = driver.findElement(By.cssSelector("span.Head to Head")); System.out.println(matchs);

我的代码:

        WebDriver driver = new SafariDriver();

        driver.get("http://bet.hkjc.com/football/default.aspx");
        WebElement matchs = driver.findElement(By.cssSelector("span.Head to Head"));

        System.out.println(matchs);

        driver.quit();

如何爬网
曼彻斯特Utd
Celta Vigo

firefox
中使用
firebug
firepath
插件,检查该元素,获取xpath并将其放在该代码的双引号内:

WebElement matchs = driver.findElement(By.xpath("//a[@title='Head to Head']"));
System.out.println(matchs.getText());
System.out.println(driver.findElement(By.xpath("")).getText()); 

如果您不知道如何使用firebug和firepath,请参考链接,您可以通过css选择器或xpath选择器找到该元素

通过使用xpath

driver.findElement(By.xpath("//a[@title='Head to Head']"));
通过使用css选择器

driver.findElement(By.cssSelector("span > a[title='Head to Head']")); 
如果没有比赛,也可以尝试这样的事情

driver.findElement(By.cssSelector("td.cteams.ttgR2>span>a[title='Head to Head']"));
注意:在您的代码中,您尝试像CSS选择器中的
span.Head-to-Head
那样。点表示类,根据您的路径,您正在查找span标记,该标记具有类名称“Head-to-Head”,在您的dom中不存在,因为这是锚定标记的标题

最初通过Firefox的
Firebug
Firepath
插件获取Xpath或css路径

浏览一些博客以获得清晰的理解,你将能够自己创建


同样的

我假设以上所有答案都不适用于您,我将提供另一个答案

我可以看到两个文本都在“a”标签下。因此,我们的想法是导航到元素并使用getText()——返回可见文本

String word = driver.findElement(By.xpath("//span/a")).getText();
System.out.println(word);

希望这对您有用。

在我所有的测试中,我都使用getAttribute来获取文本,它对我所有的驱动程序都很好:


资产质量(strCity,txtCity.getAttribute(“值”)

cosole显示:使用给定的搜索参数在页面上找不到元素。@DnYk尝试使用firebug和firepath。很容易我不理解字体,能否请您提供一个元素/链接的快照,您希望从中获取
曼彻斯特Utd和Celta Vigo
我正在寻找要从中提取文本的元素的HTML DOM。我不懂字体,所以我想要那个元素/链接的图片/快照,这样我就可以在网站上轻松找到:)@DnYk这个还开着吗?