我使用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)
比我的结果只是一个空字符串。这是怎么来的以及如何解决这个问题?
答案 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);
参数对象包含参数数组。通过这种方式,我们以数组的形式获取值,因此我们也得到空值和空字符串。