java
  • selenium
  • 2017-09-05 1 views -1 likes 
    -1

    ウェブタブに日付を含む1つの列があります(それらはすでに最新のものから古いものにソートされています)。 私のテストケースは、日付がすでにウェブテーブルでソートされていることを証明することです。私はリスト変数へのすべての日付を取得します。このコードにより、ウェブテーブル内の日付が既にソートされていることを確認するには

    List<WebElement> rows = driver.findElements(By.xpath("//*[@id='ui-datepicker-div']/div[1]/table/tbody/tr/td[1]")); 
    

    は、どのように私はこのリストを証明することができソートやUIに表示されていますか?

    +0

    ソートされた期待されたセルに期待されるテキストが表示されることを確認してください。日付をあらかじめ知っていない場合は、境界と一致するいくつかの日付と考慮する特定のケースを含む適切なテストケースを作成することから始めます。 –

    +0

    あなたのコードはどこで比較を試みていますか?参照:[Xを行うには?](https://meta.stackoverflow.com/questions/253069/whats-the-appropriate-new-current-close-reason-for-how-do-i-do-x )SOに関する期待は、質問をするユーザーが自分の質問に答えるだけでなく、その研究、コードの試行、結果を共有することです。これは、時間をかけて自分自身を助けようとしていることを示しています。明白な回答を繰り返さないようにしてくれています。そして、より具体的で適切な答えを得ることができます。参照:[ask] – JeffC

    答えて

    1
    List<WebElement> rows = driver.findElements(By.xpath("//*[@id='ui-datepicker-div']/div[1]/table/tbody/tr/td[1]")); 
    

    先に進むと、問題を分割していくことができます。これは、理想的には、あなたがそれのためにコードを書くことを期待する、それを行うだけの方法である:

    1. あなたがList<WebElement> rowsを持っている、あなたはそれからList<String> datesを構築する必要があります。 rowsを繰り返し、.getText()を追加してdatesに追加してください。

    2. compareDates(String d1, String d2)この2つの文字列の日付は、UI内の任意の形式で比較され、compareToメソッドのように0,1、-1が返されるメソッドを作成します。新しく作成されたリストdates

    3. 反復(1)のように、次に隣接比較をアサート

      Assertion.assertTrue(compareDates(dates.get(i),dates.get(i+1)) == 0); 
      

    :上記の動作は同様List<Date>代わりにList<String>で行うことができここでは、Java組み込みの比較メソッドを使用して2つの日付を比較できます。これをコメントで指摘してくれた@JeffCに感謝します。

    +0

    Javaによって提供される 'Date'を使用して' String'の 'List'を作成しないでください。こうすることで、既にJavaで提供されている組み込みの比較メソッドを使用することができます。あなた自身のことを書くことは、それをデバッグしなければならないことなどを意味します。 – JeffC

    +0

    @ JeffCリストについて言及した理由は、UIに表示される日付の形式が質問に記載されていないということでした。そうでなければ、私はそれを好むでしょう。とにかくポイントを編集します。意図はcompareToのみを使用することでした。ビルトインまたはオーバーライドは、投資できる時間の一部でなければなりません。 – nullpointer

    関連する問題