在Selenium Webdriver中按xPath元素搜索

时间:2015-08-10 12:58:05

标签: java selenium xpath selenium-webdriver elements

拥有包含以下内容的div。 有谁可以请教我怎么能找到例如。 <dd>ID</dd> <dt>jankovalsky</dt>并在其上执行.getText?

<dl id="userDetails" class="dl-horizontal">
    <dt>Forename</dt>
    <dd></dd>
    <dt>Surname</dt>
    <dd></dd>
    <dt>ID</dt>
    <dd>jankovalsky</dd>
    <dt>Preferred Language</dt>
    <dd></dd>
    <dt>Position</dt>
    <dd></dd>
    <dt>Accounts in domains</dt>
    <dd>
        <ul>
                <li>something</li>
        </ul>
    </dd>
    <dt>Business roles</dt>
    <dd>
        <ul>
        </ul>
    </dd>
    <dt>email</dt>
    <dd></dd>
    <dt>Status</dt>
    <dd></dd>
</dl>     

至于<dt></dt>使用@FindBy(xpath = "//*[@id=\"userDetails\"]/dt[3]")之类的xpath进行了识别,但需要更通用的方式来识别<dt>ID</dt>订单的某些更改(因为它足够了下一个构建它将作为第一个构建,并且断言将失败)。

不知道如何处理这个<dd>jankovalsky</dd>

1 个答案:

答案 0 :(得分:3)

您需要following-sibling

driver.findElement(By.xpath("//dl[@id='userDetails']/dt[. = 'ID']/following-sibling::dd")).getText();