我有一个带有 JQuery 下拉列表的 Web 表单。特定字段包含出生日期。该字段的来源是:
<div class="tooltipGroup" style="z-index:19;">
<div class="day">
<div class="jqTransformSelectWrapper" style="z-index: 19;">
<div>
<ul style="width: 100%; display: block; visibility: visible;">
<li class="optHeading">
<li class="undefined">
<li class="undefined">
<li class="undefined">
<li class="undefined">
<li class="undefined">
<li class="undefined">
<a index="6" href="#">6</a>
</li>
<li class="undefined">
<a index="31" href="#">31</a>
</li>
这是试图获取所有元素并将它们放入 HashMap 的代码:
public void selectDob(int dob) {
WebElement dobFieldDropdown;
WebElement content = driver.findElement(By.className("leftClmn"));
driver.findElement(By.id("aWrapper_dob_day")).click();
dobFieldDropdown = content.findElements(By.className("tooltipGroup")).get(2).findElement(By.className("day")).findElement(By.tagName("ul"));
HashMap<String, WebElement> dropdownValues = new HashMap<String, WebElement>();
for (WebElement el : dobFieldDropdown.findElements(By.tagName("a"))) {
dropdownValues.put(el.getText(), el);
System.out.println(el.getText());
}
dropdownValues.get(dob).click();
}
该代码工作得很好,但有一个例外:它无法获取所有字段的值,只是打开下拉列表时第一个可见的值。
1 2 3 4 5
问题是如何获取其他字段的值?