在 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();
有一个 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();