2016-09-12 7 views
0

Как выбрать невидимый список выпадающего списка из следующего кода?Выбор окна выпадающего списка невидимых элементов

<div id="form:munit_panel" class="ui-selectonemenu-panel ui-widget ui-widget-content ui-corner-all ui-helper-hidden ui-shadow" style="width: 125px; display: block; top: 177px; left: 798.267px; z-index: 1006;"> 
<div class="ui-selectonemenu-items-wrapper" style="height:200px"> 
<ul id="form:munit_items" class="ui-selectonemenu-items ui-selectonemenu-list ui-widget-content ui-widget ui-corner-all ui-helper-reset" role="listbox" aria-activedescendant="form:munit_0"> 
<li id="form:munit_0" class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all ui-state-highlight" role="option" tabindex="-1" data-label="No Unit">No Unit</li> 
<li id="form:munit_1" class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all" role="option" tabindex="-1" data-label="Bag">Bag</li> 
<li id="form:munit_2" class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all" role="option" tabindex="-1" data-label="Load">Load</li> 
<li id="form:munit_3" class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all" role="option" tabindex="-1" data-label="Litre">Litre</li> 
<li id="form:munit_4" class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all" role="option" tabindex="-1" data-label="Each">Each</li> 
<li id="form:munit_5" class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all" role="option" tabindex="-1" data-label="Unit">Unit</li> 
<li id="form:munit_6" class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all" role="option" tabindex="-1" data-label="Nos">Nos</li> 
<li id="form:munit_7" class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all" role="option" tabindex="-1" data-label="R.feet">R.feet</li> 
<li id="form:munit_8" class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all" role="option" tabindex="-1" data-label="Sq.ft">Sq.ft</li> 
<li id="form:munit_9" class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all" role="option" tabindex="-1" data-label="Kgs">Kgs</li> 
<li id="form:munit_10" class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all" role="option" tabindex="-1" data-label="feet">feet</li> 
<li id="form:munit_11" class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all" role="option" tabindex="-1" data-label="ml">ml</li> 
<li id="form:munit_12" class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all" role="option" tabindex="-1" data-label="Mts">Mts</li> 
</ul> 
</div> 
</div> 

Я попробовал этот Selenium код для выбора выпадающего меню последний вариант:

public void selectOneMenu(String idPrefix, String value) { 
     if (StringUtil.isNotBlank(value)) { 
      driver.findElement(By.id(idPrefix + "_label")).click(); 
      driver.findElement(
        By.xpath("//div[@id='" + idPrefix 
          + "_panel']/div/ul/li[text()='" + value + "']")) 
        .click(); 
     } 
} 

drop down list box, with invisible list snap

+0

Что вы имеете в виду невидимых элементов ?? и что вы пробовали до сих пор? –

+0

Мне нужно выбрать последний вариант в раскрывающемся списке. Когда я нажимаю раскрывающийся ящик, 12-й элемент не виден !! – Naveen

+0

До сих пор я пробовал этот код! 1 – Naveen

ответ

0

Вы должны попробовать использовать WebDriverWait ждать, пока dropdown параметры видны и позволяют нажать после нажатия на dropdown как указано ниже: -

public void selectOptionsByIdFromDropdown(String dropdownId, String optionsId) { 

    WebDriverWait wait = new WebDriverWait(driver, 10) 

    //First click on dropdown menu 
    WebElement dropdown = wait.until(ExpectedConditions.elementToBeClickable(By.id(dropdownId))); 
    dropdown.click(); 

    //Now wait until nested option to be present by id 
    wait.until(ExpectedConditions.presenceOfNestedElementLocatedBy(dropdown, By.id(optionsId))).click(); 
} 

Использование: -

нужно выбрать последний вариант в раскрывающемся списке .when я нажимаю выпадающий пункт коробка 12 не виден

selectOptionsByIdFromDropdown("form:munit_panel", "form:munit_12"); 
+0

Это не работает..i получил timedoutException – Naveen

+0

Есть ли динамически сгенерированный элемент option? и попробуйте один раз с помощью 'presenceOfNestedElementLocatedBy', см. обновленный ответ ,, –

+0

@Naveen и если здесь динамически изменяется идентификатор, попробуйте использовать' xpath' с желаемым текстом опции как 'By.xpath (" .// li [text() = 'Mts '] ")' для опции 'Mts' вместо' By.id() 'для найденного параметра. –