无法在选择中选择多个值

时间:2016-03-01 11:52:54

标签: javascript html selenium select groovy

我使用selenium来测试我的webgui。这包含以下方法:

protected static selectListItems(String id, String value1, String value2, String value3,String value4){
    String values = ""

    if(StringUtils.isNotBlank(value1))
        values += "\"" + value1 + "\""

    if(StringUtils.isNotBlank(value2))
        values += ",\"" + value2 + "\""

    if(StringUtils.isNotBlank(value3))
        values += ",\"" + value3 + "\""

    if(StringUtils.isNotBlank(value4))
        values += ",\"" + value4 + "\""

    ((JavascriptExecutor) browser.driver).executeScript("document.getElementById('"+ id +"').value=[" + values + "];")
}

这个groovy方法将选定的值放到weg页面上的select中。我使用如下方法:

  

selectListItems(" queryASLevel"" AccountStatement",NULL,NULL,NULL)

当我尝试添加以下

之类的2个项目时,这是有效的
  

selectListItems(" queryASLevel"" AccountStatement"" AccountStatementDetail",NULL,NULL)

比我的结果只是一个空字符串。这是怎么来的以及如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

尝试将您的方法重写为有点开发,可能isNotBlank失败:

protected static selectListItems(String id, String value1, String value2, String value3,String value4){
    String values = [value1, value2, value3, value4]
        .findAll()
        .collect { /"$it"/ }
        .join( ", " )
    String script = "document.getElementById('$id').value=[$values];"
    ((JavascriptExecutor)browser.driver).executeScript(script)
}

答案 1 :(得分:-1)

        function selectListItems()
        {
            var values="";
            for(var i=0; i<arguments.length; i++)
            {
                values += ""+arguments[i]+",";
            }
            alert(values);
        }
        selectListItems("sam","sffsdf","",null);

参数对象包含参数数组。通过这种方式,我们以数组的形式获取值,因此我们也得到空值和空字符串。