2016-05-20 8 views
0

現在、Selenium webdriverとjavaを使用して昇順/降順のソートを検証しようとしているテーブルがありますが、実際の並べ替えでは無視されるテキストがあり、並べ替えが正しいことを確認するために同じテキストを無視する方法を理解する。 これは、ここですべての列のデータテーブルの列を並べ替えるときに特定の文字を無視する方法

protected List<String> getMessageList(Integer column) { 
    List<WebElement> messageElements = driver.findElements(By.xpath("//table[@class='table-hover message-grid table table-condensed']/tbody/tr/td[" + column + "]")); 
    List<String> messageList = new ArrayList<String>(); 
    for (WebElement element : messageElements) { 
     if (!element.getText().equals("")) { 
      messageList.add(element.getText()); 
     } 
    } 
    System.out.println(messageList); 
    return messageList; 
} 

protected void validateAscendingOrder(Integer column) { List messageList = getMessageList(column); 
// create a new list and sort 
List<String> sortedmessageList = new ArrayList<String>(); 
sortedmessageList.addAll(messageList); 
Collections.sort(sortedmessageList); 

// compare the original list order with the sorted list to make sure they match 
assertEquals(sortedmessageList, messageList); 

}

を取得し、私の現在のコードでは、私のデータがどのように見えることができるものの一例です。不在時:メッセージ、読み取り:テストメッセージ、 テストメッセージ、FW:別のメッセージ、サンプルメッセージ セミコロン(:)の前にあるデータは、検索に含まれていないので削除します。

答えて

1

そうのようなあなたのソートするためのコンパレータを作成します。

Collections.sort(sortedmessageList, new Comparator<String>() { 

     @Override 
     public int compare(String t, String t1) { 
      // do your custom comparator here, for example : 
      return t.split(":")[1].compareTo(t1.split(":")[1]); 
     } 
    }); 

はもっとに関する情報のためthis tutorialを参照してください。

if (!element.getText().equals("")) { 
    String modifiedString = element.getText().replaceAll(".*:",""); //something greedy learnt 
    messageList.add(modifiedString); 
} 

、すべてが現在と同じロジックを使用して、適切に動作しなければなら休ま:

0

おそらく、Javaの文字列操作を使用して、小さなコード変更は、あなたの目的を果たすものとします。

:あなたの変更された文字列も使用することができ

String modifiedString = element.getText().substring(element.getText().indexOf(":") + 1); 
関連する問題