我在div
和ul
下有很多li
标签。每个li
标签由strong
标签组成:
<div style="width:380px" id="autoComplete" class="suggest fl">
<div class="sWrap">
<div class="iconWrap">
<span class="nLoder" style="display: none;"></span>
</div>
<div>
<input type="text" autocomplete="off" placeholder="Search" class="" id="keywords1" style="width:375px;" name="KEYWORDS">
</div>
</div>
<div class="sugCont nScroll " id="sugDrp_autoComplete" style="display: none; width: 380px;">
<ul class="Sdrop">
<li class="sugTouple">
<button style="width:100%" class="Sbtn " tabindex="-1" type="button">
Acc
<strong>ounting</strong>
</button>
</li>
<li class="sugTouple">
<button style="width:100%" class="Sbtn" tabindex="-1" type="button">
Acc
<strong>ounts Payable</strong>
</button>
</li>
<li class="sugTouple">
<button style="width:100%" class="Sbtn" tabindex="-1" type="button">
Acc
<strong>ounts Receivable</strong>
</button>
</li>
<li class="sugTouple">
<button style="width:100%" class="Sbtn" tabindex="-1" type="button">
Acc
<strong>ount Management</strong>
</button>
</li>
</ul>
</div>
</div>
我当前的代码:
List<WebElement> optionsToSelect = driver.findElements(By.xpath("//ul[@class='Sdrop']"));
for (WebElement option : optionsToSelect) {
System.out.println(option);
if (option.getText().equals(textToSelect)) {
System.out.println("Trying to select: "+textToSelect);
option.click();
break;
}
}
如何选择值?我错过了什么,指引我去够。
您应该计算li,然后启动循环并检查按钮文本是否为更新的代码。
List<WebElement> optionsToSelect = driver.findElements(By.xpath("//div[@id='sugDrp_autoComplete']/ul[@class='Sdrop']/li"));
for (WebElement option : optionsToSelect) {
WebElement buttonObj = option.findElement(By.tagName("button"))
if (buttonObj.getText().equals(textToSelect)) {
System.out.println("Trying to select: "+textToSelect);
buttonObj .click();
break;
}
}
您可以使用xpath:直接单击按钮
//button[@class='Sbtn' and text()='textToSelect']