如何在硒中提取标题标签中的动态数字?

时间:2018-05-31 17:03:28

标签: selenium-webdriver

这是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>

3 个答案:

答案 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");