How print first largest value Selenium with Java -


my code:

          list<webelement> mylist=driver.findelements(by.xpath("//div[@id='legends']//span[4]"));             //to store web elements 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); } 

my output

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

it's wrong. want print first largest value.

you need write custom comparator compareto method of string class perform text based comparison , hence, 7.4 compared higher 35 (because of 7 being higher 3). here's java 8 example, e.g.:

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()); } 

Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -