【发布时间】:2018-05-10 10:42:00
【问题描述】:
我正在处理一个包含 4 个选项的下拉菜单,每次展开(或单击)下拉菜单时,我都需要单击每个选项。我已经编写了第一次单击特定元素的逻辑,但是当我展开下拉列表时,代码无法单击下拉列表中的任何其他选项。请让我知道我在哪里做错了。
代码 -
try {
Thread.sleep(3000);
// gets all the options in the dropdown.
List<WebElement> select = driver.findElements(By.xpath("//*[@class='select2-results__option']"));
System.out.println(select.size());
for (int i=0; i<select.size();i++) {
select.get(i).click();
Thread.sleep(2000);
// drodpdown element
List<WebElement> ele = driver.findElements(By.xpath(GetPropertValue("dropdownvalue")));
// expands the dropdown again.
ele.get(1).click();
Thread.sleep(2000);
select.get(i).click();
}
} catch (Exception e ){
Assert.fail("unable to click option from services");
}
下拉代码sn-p -
<ul class="select2-results__options ps-container ps-theme-default" role="tree" id="select2-j_idt2339-results" aria-expanded="true" aria-hidden="false" data-ps-id="fcad5f76-4b37-a689-7d7c-d975c236d339">
<li class="select2-results__option" id="select2-j_idt2339-result-x9ct-022" role="treeitem" aria-selected="false">Issue License</li>
<li class="select2-results__option" id="select2-j_idt2339-result-wuzg-023" role="treeitem" aria-selected="false">Issue License from Old License</li>
<li class="select2-results__option" id="select2-j_idt2339-result-b9ni-024" role="treeitem" aria-selected="false">Replace License</li>
<li class="select2-results__option" id="select2-j_idt2339-result-zj1d-025" role="treeitem" aria-selected="false">Renew License</li>
<div class="ps-scrollbar-x-rail" style="left: 0px; bottom: 3px;">
<div class="ps-scrollbar-x" tabindex="0" style="left: 0px; width: 0px;"></div>
</div>
<div class="ps-scrollbar-y-rail" style="top: 0px; right: 3px;">
<div class="ps-scrollbar-y" tabindex="0" style="top: 0px; height: 0px;"></div>
</div>
</ul>
我已添加以下代码,但无法单击下拉菜单。
try {
Thread.sleep(3000);
WebElement dropdown = driver.findElement(By.xpath("//*[@class=' form-field ']/span[1]/span[1]/span"));
List<WebElement> list = driver.findElements(By.xpath("//*[@role='tree']/li"));
System.out.println(list.size());
Thread.sleep(5000);
for(int i=1;i<list.size();i++) {
Thread.sleep(5000);
dropdown.click();
Thread.sleep(3000);
list.get(i).click();
Thread.sleep(5000);
System.out.println("Selected : " +list.get(i).getText());
}
【问题讨论】:
标签: java select drop-down-menu