gpt4 book ai didi

java - 如何用Java打印第一个最大值的Selenium

转载 作者:行者123 更新时间:2023-11-29 04:27:03 27 4
gpt4 key购买 nike

我的代码:

          List<WebElement> myList=driver.findElements(By.xpath("//div[@id='legends']//span[4]"));
//To store all web elements into list
List<String> all_elements_text=new ArrayList<String>();
for(int i=0;i<myList.size();i++) {
all_elements_text.add(myList.get(i). getText());
System.out.println(myList.get(i).getText());
}
Object obj = Collections.max(all_elements_text);
System.out.println("The highest value :"+ obj);
}

我的输出

35.6%
22.6%
15.8%
13.8%
7.4%
4.2%
0.7%
The highest value :7.4%

这是错误的。我想打印第一个最大值。

最佳答案

您需要编写一个自定义的比较器来执行此操作,因为String 类的compareTo 方法将执行基于文本的比较,因此,7.4 将比较高于 35(因为 7 高于 3)。这是 java 8 示例,例如:

List<String> all_elements_text = new ArrayList<>();
all_elements_text.add("35.6%");
all_elements_text.add("7.4%");
DecimalFormat df = new DecimalFormat("0.0#%");
Optional<String> max = all_elements_text.stream()
.max((s1, s2) -> {
try {
return Double.valueOf(df.parse(s1).doubleValue()).
compareTo(Double.valueOf(df.parse(s2).doubleValue()));
}catch(Exception e) {
throw new RuntimeException(e);
}
});
if(max.isPresent()) {
System.out.println(max.get());
}

关于java - 如何用Java打印第一个最大值的Selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45781147/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com