2016-06-30 19 views
0

カレンダーから別の場所に日付を比較して、ユーザーが選択した後に日付が表示されていることを確認します。私はこれらの日付を取って、検証のために別の形式に変換しています。文字列配列にWebElement属性を追加する

私が抱えている問題は、日付情報を保持するweb要素の属性から配列を作成するときです。私は選択された日付を反復しようとしていますが、次に属性を取り込み、それを自分のフォーマットに変換してから、後でレビューするためにリストに追加します。

私は文字列リストを見るたびに空です。私はちょうど.add()を使って動作すると思ったが、これはそうではない。静的な文字列をprintlnしても、collectDateStringsを確認するためにハードコードしても、コンソール上で何も取得しません。

List <String> collectedDateStrings = new ArrayList <String>(); 

//Find all dates that are currently selected. Create a list of these to use later. 
List <WebElement> selectedDates = driver.findElements(highlightedDates); 
for (WebElement we: selectedDates) { 

    collectedDateStrings.add(Utils.convertDateString(we.getAttribute("title"))); 
} 

for (String s: collectedDateStrings) { 
    System.out.println("this value is: " + s); 
} //this yields nothing 

編集: これは私が日付を取得しようとしています要素です:

<div class="cvDialogRow" style="width: 149px; text-align: left;"><label id="lblDate0">Wed 06/29/2016<br></label></div 

これは私がコマンドである私は、このコードのビットを追加していいくつかのコメントパー 要素を見つけてリストを作成するために使用します。

List<WebElement> occurences = driver.findElement(By.xpath("//div[starts-with(@class, 'cvDialogRow')]")).findElements(By.xpath("//label[starts-with(@id, 'lblDate')]")); 
+0

正しい要素から正しい属性を取得してもよろしいですか?存在しない属性を取得している場合は、空の文字列を返します。 – RemcoW

+0

上記のコードに関連するHTMLと関連するロケータを指定してください。 – JeffC

答えて

0

回答が見つかりました。上記のコード構造は大丈夫ですが、私が見ていた要素には、私が実現したものよりも多くの要素が列挙されていました。 「lblDate」の4つの要素が存在している必要がありますが、最初の3は次のように私はちょうどそれらを削除ヌルた7があった:

List<WebElement> occurences = driver.findElement(By.xpath("//div[starts-with(@class, 'cvDialogRow')]")).findElements(By.xpath("//label[starts-with(@id, 'lblDate')]")); 
    occurences.remove(0); 
    occurences.remove(0); 
    occurences.remove(0); 

は今、私は私のリストのための右の要素で探しています。返信いただきありがとうございます。

関連する問題