【发布时间】:2015-12-30 17:50:55
【问题描述】:
xpath:
//*[@id='full-scorecard']/div[2]/div/table[1]/tbody/tr[3]/td[2]/child::text()
上面的代码只返回一个不能打印文本的webelement。
WebElement txt= driver.findElement(By.xpath(
"//*[@id='full-scorecard']/div[2]/div/table[1]/tbody/tr[3]/td[2]/child::text()"));
System.out.println(txt);
HTML:
12.6
抓住休斯
73/4
【问题讨论】:
-
在 selenium 中,
By.xpath()定位器中使用的 XPath 表达式必须指向一个 Web 元素。您不能以这种方式匹配文本节点。 -
那么如何获取文本'抓住休斯'??
-
12.6 抓到休斯 73/4
-
也许你应该在 WebElement 上尝试
getText(),就像here 中建议的那样 -
@alecxe,谢谢,这有帮助。目前尚不清楚“网络元素”是否总是指 DOM 元素,而不是其他类型的 DOM 节点。我在release.seleniumhq.org/selenium-remote-control/0.9.2/doc/dotnet/… 看到 Selenium XPath 支持选择属性(例如
//a[contains(@href,'#id1')]/@class),因此显然“web 元素”并不总是 DOM 元素。不幸的是,Selenium 的文档不是非常系统或全面。
标签: java selenium xpath selenium-webdriver