[英]String Array Method not Returning the Array Object - Selenium WebDriver
请查找我的代码,它不返回Array对象的值,它只返回一个数组对象
public String[] verify_userRole(String[] Expected_role) {
String[] actual_role = new String[4];
String first;
WebElement role_table = driver.findElement(By
.xpath("//*[@id='tblListView']/tbody[1]"));
List<WebElement> allRows = role_table.findElements(By.tagName("tr"));
for (WebElement row : allRows) {
List<WebElement> cells = row.findElements(By.tagName("td"));
for (WebElement cell : cells) {
first = cell.getText().toString();
actual_role = new String[] {first};
}
}
return actual_role;
}
变量首先包含四个值(“name”,“name1”,“name2”,“name3”)后将此字符串值转换为数组(actual_role)然后只返回一个值(“name”)
请说明上述代码的问题是什么
您在循环中的每个步骤重新初始化字符串数组。
你应该只做一次。
ArrayList<String> actual_role = new ArrayList<String>( )
for (WebElement row : allRows) {
List<WebElement> cells = row.findElements(By.tagName("td"));
for (WebElement cell : cells) {
first = cell.getText().toString();
actual_role.add(first);
}
}
return (String[]) actual_role.toArray( new String[ actual_role.size() ] );
顺便说一下,我已经将您的示例转换为使用中间ArrayList,因为您不知道实际的数据大小,并且它很容易在运行时重新初始化数组。
如果您正在实现的方法的签名不是由外部框架决定的,我建议您使用List<String>
作为返回类型而不是String[]
。
你总是在循环中实例化你的数组:
actual_role = new String[] {first};
试着改为:
actual_role[i] = first;
当我是当前指数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.