Selenium - 无法从下拉列表中选择选项

时间:2015-01-15 06:26:30

标签: select selenium drop-down-menu

以下是代码:

public static void test1() {  
System.out.print("\nTo find UserName element");
Select select = new Select(driver.findElement(By.id("drop_down")));
System.out.print("\nElements found");
select.selectByIndex(1);
}

以下都没有下载:

select.selectByIndex(1);
select.selectByValue("1");
select.selectByVisibleText("Super Admin"); 

它引发了一个异常: 线程“main”中的异常org.openqa.selenium.NoSuchElementException:找不到具有值的选项:1

<select id="drop_down" style="width:205px;" name="drop_down">
    <option value=""></option>
    <option value="1">
        Super Admin
    </option>
    <option value="4">
        Question Reviewer
    </option>
    <option value="6">
    Evaluator
    </option>
</select>

2 个答案:

答案 0 :(得分:1)

当您尝试访问时,可能是下拉列表未正确加载

尝试以下代码等到下拉列表中的选项数量大于1,然后从中选择第一个选项

try{
    // Waits for 20 seconds
    WebDriverWait wait = new WebDriverWait(driver, 20);

    // Wait until expected condition size of the dropdown increases and becomes more than 1
    wait.until((ExpectedCondition<Boolean>) new ExpectedCondition<Boolean>(){
        public Boolean apply(WebDriver driver)  
        {
            Select select = new Select(driver.findElement(By.id("drop_down")));
            return select.getOptions().size()>1;
        }
    });

    //To select the first option
    Select select = new Select(driver.findElement(By.id("drop_down")));
    select.selectByVisibleText("Super Admin");
}catch(Throwable e){
    System.out.println("Error found: "+e.getMessage());
}

答案 1 :(得分:1)

嗨,根据1月15日6:35的第一个评论bu Subh,我也修改了代码但得到了与Abhinav在1月15日6:53提到的相同的错误,之后Subh说&#34;我已编辑我上面的代码..看看它是否适合您,让我知道,请...&#34;但是在评论之后我没有看到任何修改后的代码,因此这没有帮助....最后我搜索了其他几个论坛,我尝试使用selectByIndex()作为: -

WebElement toactTyp=driver1.findElement(By.name((<Name of the Element to access>)));
Select toactSel=new Select(toactTyp);
toactSel.selectByIndex(2);

它适用于上面的代码.....我请求分享修改后的代码或至少修改已完成的行,因为它对我这么多很有用