这是html。我想在h2标签中提取1814400752。 我尝试过使用xpath但它只提取"订单号:"没有数字。请指教。
<h2 _ngcontent-c57="">
<pwwgen-label _ngcontent-c57="" default="Order number:" name="e-comm-confirmation-order-number" _nghost-c8="" ng-reflect-name="e-comm-confirmation-order-numb" ng-reflect-default="Order number:">
<span _ngcontent-c8="">Order number:
</span>
</pwwgen-label>
1814400752</h2>
答案 0 :(得分:1)
您必须从子xpath
中选择父标记可以使用XPath以下
Xpath: //*[name='e-comm-confirmation-order-number']/parent::h2
driver.findElement(By.xpath("//*[name='e-comm-confirmation-order-number']/parent::h2")).getText();
答案 1 :(得分:0)
根据 HTML ,您已共享文字 1814400752 是<h2>
标记的子节点。要提取文本 1814400752 ,您可以使用以下解决方案(Java):
WebElement myElement = driver.findElement(By.XPath("//h2[@_ngcontent-c57]"));
String myText = ((JavaScriptExecutor)driver).executeScript("return arguments[0].lastChild.textContent;", myElement).toString();
答案 2 :(得分:0)
在页面上渲染数字需要时间,因此在执行下面的代码后无法立即提取它。我必须使用一些同步,然后执行,它工作。感谢您的所有回复。
WebElement myElement = driver.findElement(By.XPath("//h2[@_ngcontent-c57]"));
String output = element.getAttribute("innerText");