我们如何从下拉列表中选择一个所需的值,该值没有使用selenium选择标签或选项标签?

时间:2016-11-01 15:03:53

标签: java selenium selenium-webdriver

我的html标签是这样的,没有选择标签或选项标签。 我想使用selenium和java选择所需的下拉值。 有人能帮我吗 ? 因为我不能继续选择,我不能使用它。 发现很难从下拉列表中选择一个值。

<div id="boundlist-1254" class="x-boundlist x-boundlist-floating x-layer x-boundlist-default x-border-box rp-floating rp-shadow-frame" tabindex="-1" style="right: auto; left: 642px; top: 245px; width: 215px; z-index: 19000; height: 287px;">
 <div id="boundlist-1254-listEl" class="x-boundlist-list-ct x-unselectable" role="presentation" style="overflow: auto; height: 287px;">
   <ul class="x-list-plain">
     <li class="x-boundlist-item" role="option" unselectable="on">*Feb182015</li>
     <li class="x-boundlist-item" role="option" unselectable="on">*ShaNili1</li>
     <li class="x-boundlist-item" role="option" unselectable="on">1 test supplier</li>
     <li class="x-boundlist-item" role="option" unselectable="on">3MTA3</li>
     <li class="x-boundlist-item" role="option" unselectable="on">6060 Store Supplier</li>
     <li class="x-boundlist-item" role="option" unselectable="on">7885 EL Supplier</li>
     <li class="x-boundlist-item" role="option" unselectable="on">A new supplier</li>
     <li class="x-boundlist-item" role="option" unselectable="on">A-Mamta-SUp</li>
     <li class="x-boundlist-item" role="option" unselectable="on">ANHEUSER BUSCH-STOCKTON</li>
     <li class="x-boundlist-item" role="option" unselectable="on">Aarti-MCLANE COMPANY</li>
     <li class="x-boundlist-item" role="option" unselectable="on">AutoSupplier12</li>
     <li class="x-boundlist-item" role="option" unselectable="on">BAY AREA DISTRIBUTING </li>
     <li class="x-boundlist-item" role="option" unselectable="on">BON APPETIT </li>

1 个答案:

答案 0 :(得分:0)

我使用以下代码解决了它 下拉列表将逐个元素向下滚动,直到找到它为止,最后当它找到时,它将选择它。 我已将xpath作为对象和值传递给数据:

    JavascriptExecutor jse = (JavascriptExecutor) driver;
    WebElement droplist = driver.findElement(By.xpath(object));
    List<WebElement> droplist_Contents = driver.findElements(By.xpath(object));
    int index = droplist_Contents.size();

    for (int count = 1; count <= index; count++) {

        //elemXPath: combining xpath with index value if the element
        String elemXPath= object+"["+count+"]";
        //content is the run time value of the dropdown value which moves one by one
        String content = driver.findElement(By.xpath(elemXPath)).getText();

        ((JavascriptExecutor) driver).executeScript(
                "arguments[0].scrollIntoView();",
                driver.findElement(By.xpath(elemXPath)));

        if(content.equalsIgnoreCase(data)){
            driver.findElement(By.xpath(elemXPath)).click();
            break;
        }


    }