2016-03-21 39 views
-4

Otomasyon çerçevem, Java'da Selenium API kullanılarak oluşturulan Perfecto bulutudur. Test senaryoda Takvimi Ay görünümünde açmam ve sonra (Sağdan Sola) kaydırıp sonraki ayın görüntülenip görüntülenmeyeceğini doğrulamam gerekiyor. Birkaç mesajda okudum ve bunun için HaspMap'in kullanılabildiğini buldum. Bu senaryo için hashmap nasıl kullanılacağı konusunda bana rehberlik edebilir. Bazı kod snippet'leri gerçekten yardımcı olacaktır.Ayları doğrulamak için Java Selenium'da hashmap kullanma Ay

Deney Adımları: Ay görünümünde

  1. başlatın Takvim
  2. Yakalama geçerli ayı (örn - Mart) ve String kaydetmek curMonth
  3. Şimdi Ay için kaydırma (sağdan sola)
  4. Değiştirme
  5. Ekranda görüntülenen Ayın değerini yakala (şimdi Nisan geliyor) ve dize kaydet SonrakiSonraki
  6. nextMonth değerini doğrulayın aslında curMonth
  7. 'ün yanındaki değer olduğunu doğrulayın

Kullanmaya çalıştığım kod örneğinin altında.

private static String getMonthByValue(HashMap<String, Integer> table, Integer newMonthValue) { 
    return table.entrySet().parallelStream() 
     .filter(entry -> entry.getValue().equals(newMonthValue)) 
     .map(Map.Entry::getKey).findAny().get(); 
} 

kullanımı: Java 8Stream API özelliklerle

private static String getMonthByValue(HashMap<String, Integer> table, Integer newMonthValue) { 
    for (Map.Entry<String, Integer> mapEntry : table.entrySet()) { 
     if (mapEntry.getValue().equals(newMonthValue)) { 
      return mapEntry.getKey(); 
     } 
    } 
    return null; 
} 

veya daha fazla özlü versiyonu: comments

HashMap<String, Integer> Table = new HashMap<String, Integer>(); 
    Table.put("JAN", 1);  
    Table.put("FEB", 2);  
    Table.put("MAR", 3);  
    Table.put("APR", 4);  
    Table.put("MAY", 5);  
    Table.put("JUN", 6);  

    String testdata="MAR"; 
    System.out.println("------------------------------------------------"); 
    Integer curMon = Table.get(testdata); 
    System.out.println(curMon); 
    //Here output will be 3 which it will fetch from the hashmap table 

    //Now I am adding 1 from the return value which is 3. So 3+1=4 
    Integer newMonthValue=curMon+1; 

    //Now how to associate the integer value which is 4 stored in newMonthValue and map it to April from the Map 
+0

Benim senaryoda, HaspMap'in kullanılması gereken birkaç yazı okuduktan sonra, bunu yayınladım. – Irf

+0

Tamam, ancak birkaçına bir bağlantı eklemek, senaryonun anlaşılmasına yardımcı olur. Bir HashMap ', bir tuşa değer eşler. Bu tarihler için anahtar ve değer olarak ne görüyorsunuz ve neden iki (geçmiş ve şimdiki) tarihleri ​​doğrudan karşılaştırıyorsunuz? – ChiefTwoPencils

cevap

0

sadece bu yarar yöntemini çağırabilirsiniz değeriyle ay adını elde etmek için okumak :

String newMonthName = getMonthByValue(Table, newMonthValue);//returns "APR" in your case