html - 如何使用 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>
解决方案
试试这个代码:
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();
}
希望这会有所帮助。
推荐阅读
- excel - 如何调整图表大小并在特定单元格中粘贴图表 - excel VBA
- php - php只修改最后一行sqlite
- amazon-web-services - AWS RDS 每 2 天自动更改一次密码
- airflow - Airflow CLI:如何在 Airflow 1.10.12 中获取 dag 任务的状态?
- android - Flutter Shared 首选项在安装后首次运行时返回 null
- gcc - 链接描述文件:我可以在多个部分中指定 (*COMMON) 吗?
- reactjs - 反应配置文件组件如何聚合时间
- sql-server - 如何将当前 Windows 用户名从 Telerik 报告查看器传递到关联的报告参数以仅查询该用户的结果
- amazon-web-services - 将 aws lambda 与其他服务集成时,它们是否需要在同一个项目中?
- javascript - Python Deep Destruction Like JavaScript and assingment to new Object