Java 如何使用xpath从子节点打印文本?
xpath:Java 如何使用xpath从子节点打印文本?,java,selenium,xpath,selenium-webdriver,Java,Selenium,Xpath,Selenium Webdriver,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()")); Syst
/*[@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
这应该可以:
WebElement txt= driver.findElement(By.xpath("//*[@id='full-scorecard']/div[2]/div/table[1]/tbody/tr[3]/td[2]"));
System.out.println(txt.getText());
Selenium webdriver返回元素对象下的所有测试,包括子元素 所以在阅读之后,您应该从文本中删除整数值 谢谢
Sadik在selenium中,
By.XPath()定位器中使用的XPath表达式必须指向web元素。你无法通过这种方式匹配文本节点。那么如何获取文本“捕获Hughes”??12.6抓到Hughes 73/4
也许你应该像@alecxe中建议的那样在WebElement上尝试getText()
,谢谢,这很有帮助。不清楚“web元素”是否总是指DOM元素,而不是其他类型的DOM节点。我发现Selenium XPath支持选择属性(例如//a[contains(@href,#id1')]/@class
),因此显然“web元素”并不总是DOM元素。不幸的是,Selenium的文档不是很系统或全面。这给了我完整的文本12.6捕获Hughes 73/4,但我试图单独捕获Hughes。欢迎使用Stack Overflow!虽然这个答案可能是正确和有用的,但如果你想解释一下它是如何帮助解决问题的,那就更好了。如果有一个变化(可能是无关的)导致它停止工作,并且用户需要了解它曾经是如何工作的,那么这在将来变得特别有用。