以下是html代码的一部分:
<td class="audit-context-break-word text-left" nowrap="nowrap">
<b class="ng-binding">PONumber</b></td>
<td class="audit-context-break-word text-left ng-binding">20202022 02_001 </td>
&#13;
我需要只获取文本内容(预期值:20202022 02_001)我尝试了以下变体:
By.xpath("/descendant::*[.='PONumber']/../descendant::*[@class=\"audit-context-break-word text-left ng-binding\"]/text()")
By.xpath("/descendant::*[.='PONumber']/../following::text()[1]")
问题是在FirePath中找到了所选文本,但未在测试中找到。它由于超时异常而失败,因为找不到元素
失败的原因是什么?
答案 0 :(得分:1)
driver.findElement(By.xpath("//td[b = 'PONumber']/following-sibling::td")).getText();
答案 1 :(得分:1)
您可以使用following-sibling
来编写Xpath。
WebElement element=driver.findElement(By.xpath("//td[b[contains(text(),'PONumber')]]/following-sibling::td"));
String text = element.getText();
System.out.println(text);
我在网页上识别合适的网页元素并将其保存在网页元素中。
使用getText()
方法从该网络元素获取文本并将其保存在字符串中
打印字符串text
答案 2 :(得分:0)
Selenium无法评估xpath的text()函数。你可以运行javascript并获得结果。在你的程序中按照javascript运行:
document.evaluate("//span[@class='tableNode']/text()[preceding-sibling::br and following-sibling::br]", document, null, XPathResult.STRING_TYPE, null).stringValue;
如果您使用Python或Java,我可以提供
答案 3 :(得分:-1)
我有一个类似的问题,其中元素可见,但测试不会传递isTextPresent。当我检查源代码时,它是
注意:不要贬低,只是试图帮助。