在我的申请中,我提交了一份索赔。它生成了索赔详细信息以及索赔号和状态。我需要从索赔详情中提取索赔号和状态。
包含声明号和状态的表的HTML代码:
<div id="claim-num-success" style="width:50%; margin:0 auto; padding:25px; background:none; border:1px solid #d3d3d3; line-height:24px;"> <b>Service Name:</b> 7,500 MILES - NON-TURBO ENGINE
<br> <b>Claim Number:</b> 02923240
<br> <b>R/O Number:</b> 12000
<br> <b>R/O Date:</b> 12/13/2017
<br> <b>Claim Amount:</b> $40.00
<br> <b>Status:</b> APPROVED
<br>
</div>
答案 0 :(得分:3)
在这里你可以使用xpath下面的值来提取:
//div[@id='claim-num-success']/b[text()='Claim Number:']/following-sibling::text()[1]
和
//div[@id='claim-num-success']/b[text()='Status:']/following-sibling::text()[1]
但Selenium不允许您使用xpath中的文本节点定位元素。因此,您可以使用JavascriptExecutor
来评估xpath并使用文本节点定位元素。
这就是你如何完全满足你的要求:
JavascriptExecutor js = (JavascriptExecutor)driver;
Object claimNo= js.executeScript("var value = document.evaluate(\"//div[@id='claim-num-success']/b[text()='Claim Number:']/following-sibling::text()[1]\",document, null, XPathResult.STRING_TYPE, null ); return value.stringValue;");
System.out.println("Claim Number : "+ claimNo.toString());
Object Status= js.executeScript("var value = document.evaluate(\"//div[@id='claim-num-success']/b[text()='Status:']/following-sibling::text()[1]\",document, null, XPathResult.STRING_TYPE, null ); return value.stringValue;");
System.out.println("Status : "+ Status.toString());