我只是通过XPath找到元素(大约100个浮点值)并使用System.Out将它们打印在控制台上。现在我需要对它们进行排序并从中打印前三个值。请帮助我这方面。 感谢
答案 0 :(得分:0)
由于您正在使用SeleniumWebdriver,您可能将其作为数据结构:List<WebElement>
。
列表是java.util.Collection框架的一部分,因此实现排序并不是很难。如果list包含List<WebElement>
,并且您想要排序的浮点值位于名为toSortAfter
的属性中,则此类操作可能有效:
Collections.sort(list, new Comparator<WebElement>(){
@Override
public int compare(WebElement e1, WebElement e2){
String fl1Str = e1.getAttribute("toSortAfter");
String fl2Str = e2.getAttribute("toSortAfter");
if (fl1Str != null && fl2Str != null){
float f1 = Float.parseFloat(fl1Str);
float f2 = Float.parseFloat(fl2Str);
if (f1 < f2){
return -1;
}
else if (f1 > f2) {
return 1;
}
}
return 0;
}
});
我对感兴趣的读者更好地处理异常...另外,请注意我从头脑中写出来并且没有Java编译器。所以可能存在语法错误或其他错误。
注意:的
如果您不了解HMTL节点,则无法再为您提供帮助。可能是,不同地调用属性,浮点值不是完全属性。如果它是Elements的内容,您可以使用WebElement.getText()方法访问它。
答案 1 :(得分:0)
我不知道selenium,我的代码与java有关。如果你的浮点数是这样的字符串(5.3 6.366),你可以使用下面的代码:
String floatNumber = "5.3 6.366";
String[] numbers = floatNumber.split(" ");
Arrays.sort(numbers);
for(int i=0; i<numbers.length;i++){
System.out.println(numbers[i]);
}