在 Selenium Webdriver 中按 xPath 元素搜索

Searching by xPath element in Selenium Webdriver

有一个 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 做了 id,但需要更通用的方法来识别它以防 <dt>ID</dt> 顺序发生一些变化(因为在下一个构建中就足够了它将作为第一个登陆并且断言将失败。

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

你需要following-sibling这里:

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