首页 > 解决方案 > 如何使用 li 和 ul 标签从 Selenium 的下拉列表中选择值?

问题描述

我要尝试从下拉列表中选择值。以下代码没有出现任何错误,它只是运行并且没有从下拉列表中选择任何值。我试图选择货币价值US Dollar

谁可以帮我这个事?

WebElement ele = driver.findElement(By.xpath("//div[@class='row']/span[1]/span[1]/span[1]/span[2]/span[1]"));
ele.click();

List<WebElement> currencyList=ele.findElements(By.tagName("li"));

for(WebElement li : currencyList)
{       
    if(li.getText().equals("US Dollar"))
    {
        li.click();
        break;          
    }
}
<span unselectable="on" class="k-select" aria-label="select" role="button" tabindex="-1" aria-controls="CurrencyId_listbox"><span class="k-icon k-i-arrow-60-down"></span></span>
<ul unselectable="on" class="k-list k-reset" tabindex="-1" aria-hidden="true" id="CurrencyId_listbox" aria-live="off" data-role="staticlist" role="listbox">
<li tabindex="-1" role="option" unselectable="on" class="k-item k-state-selected k-state-focused" data-offset-index="0" id="a2d90958-fc45-4147-baab-eb040de841b0">US Dollar</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="1">Australian Dollar</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="2">British Pound</li><li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="3">Canadian Dollar</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="4">Chinese Yuan Renminbi</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="5">Euro</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="6">Hong Kong Dollar</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="7">Japanese Yen</li><li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="8">Russian Rouble</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="9">Swedish Krona</li><li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="10">Ringgit</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="11">Singaporean Dollar</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="12">Indonesian Rupiah</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="13">Myanmar Kyat</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="14">Philippine Peso</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="15">Thai Baht</li></ul>

标签: html

解决方案


试试这个代码:

List<WebElement> currencyList= driver.findElements(By.cssSelector("ul.k-list.k-reset>li"));
for(WebElement currency:currencyList ){
if(currency.getText().trim().equals("US Dollar"))
currency.click();
}  

希望这会有所帮助。


推荐阅读