试图从当前的div元素中找到下一个div元素

时间:2015-04-06 16:27:00

标签: java html selenium xpath selenium-webdriver

我有这样的HTML代码:

<div style="display: inline-block; position: absolute; top: 84px; bottom: auto; left: 5px; right: auto; width: auto; height: auto; max-width: none; max-height: none;" _afrc="2 1 8 1 start top">**CRED ID:** </div>
<div style="display: inline-block; position: absolute; top: 84px; bottom: auto; left: 115px; right: auto; width: auto; height: auto; max-width: none; max-height: none;" _afrc="3 1 8 1 start top">**11111972**</div>
<div style="display: inline-block; position: absolute; top: 103px; bottom: auto; left: 5px; right: auto; width: auto; height: auto; max-width: none; max-height: none;" _afrc="2 1 10 1 start top">**CAQH ID:** </div>
<div style="display: inline-block; position: absolute; top: 103px; bottom: auto; left: 115px; right: auto; width: auto; height: auto; max-width: none; max-height: none;" _afrc="3 1 10 1 start top">**11189685**</div>

如果有东西显示为两颗星,那么它应该是大胆的。我把文字加粗,所以它显示得更好。无论如何,我可以使用//div[contains(text(),'CRED ID:')]来获取包含“CRED ID”的div元素。实际的信用id值是“11111972”。我想知道当我使用上面的xpath时,我可以告诉它获取下一个div的文本值(即11111972)。我不能真正使用../div,因为在这个级别有更早和更晚的div。有人可以建议吗?

我可以使用@FindBy并创建一个List,如果“CRED ID”找到索引并添加1我想,但似乎应该有另一种方式?

由于

P.S。我从来没有真正理解兄弟姐妹,但我不知道这是否适用于此?

1 个答案:

答案 0 :(得分:1)

您可以使用following-sibling轴:

WebElement credId = driver.findElement(By.xpath("//div[contains(text(),'CRED ID:')]"));
WebElement credIdValue = credId.findElement(By.xpath("following-sibling::div"));

或者,您可以一次性完成:

WebElement credIdValue = credId.findElement(By.xpath("//div[contains(text(),'CRED ID:')]/following-sibling::div"));