我正在做一些selenium自动化测试案例,我使用下面的代码获取web元素列表。
List<WebElement> list = GlobalVariables.BrowserDriver.findElements(By.xpath(".//*[@id='Tbls_T']/tbody/tr/td[4]"));
然后我正在迭代该web元素并使用
获取值for (WebElement webElement : list) {
System.out.println(webElement.getText());
}
所以我以字符串格式获取值。和样本值在下面给出
-100,000 -80,000 0.100 2 87.270 3,000.000
我想在排序顺序中检查这些值吗?因为我认为我应该转换为整数然后检查使用某种排序方法我猜。因为我试图将值转换为整数列表,然后使用像Guava这样的排序算法来检查排序。由于负面价值,我很难做到这一点。
有什么方法可以检查上述问题的排序顺序并检查值的顺序。 ?
提前谢谢。答案 0 :(得分:0)
答案 1 :(得分:0)
请使用另一个双打和Collections.sort()列表。您可能必须从字符串中删除逗号
public class ConvertToIntSort
{
public static void main( String[] args )
{
String[] strlist = {"-100000","0.100", "2" , "3000.000","87.270", "-80000" };
java.util.List<String> stringlist = Arrays.asList(strlist);
java.util.List<Double> intList = new ArrayList<Double>();
for(String str : stringlist)
{
//converting and adding to double list
intList.add(Double.valueOf(str));
}
//Sorting is done here
Collections.sort(intList);
for(Double num : intList)
{
System.out.println(num);
}
}
}
答案 2 :(得分:0)
您想要检查传入列表是否已排序。 您将先前的值与当前值进行比较。如果先前的值大于当前值,则列表不会被排序。
示例代码:
WebElement prev=null;
boolean isSorted = true;
for (WebElement currentWebElement : list) {
if (prev == null) {
prev = currentWebElement;
continue;
} else {
if (Double.compare(Double.parseDouble(prev.getText().replaceAll(",", "")),
Double.parseDouble(currentWebElement .getText().replaceAll(",", ""))) > 0) {
isSorted = false;
break;
}
prev = currentWebElement;
}
}