ここまでは私のコードです。すべてのデータをWebElementに集め、ArrayListに追加します。
protected List getDates() {
List DateElements = driver.findElements(By.xpath("//div[@class='dates']"));
List DateList = new ArrayList();
for (WebElement element : DateElements ) {
DateList.add(element.getText());
}
return DateList;
しかし、私のリストには、テキストとカンマで区切られた日付(例:テキスト、テキスト、日付)が含まれています。私は、ArrayListに日付を追加し、テキストは追加しないでください。
WebElementから日付のみを分割し、それをArrayListに追加するにはどうすればよいですか。
ベストアンサー
このコードはあなたのために働くはずです
protected List getDates() {
List DateElements = driver.findElements(By.xpath("//div[@class='dates']"));
List DateList = new ArrayList();
for (WebElement element : DateElements ) {
String dateParsed[] = element.getText().split(",");
if(dateParsed.length == 3){
DateList.add(dateParsed[2].trim());
}
}
return DateList;
}
ここでは、
element.getText()
を返す値をカンマ区切り記号を使用して分割します。次に、適切な分割(3つの要素が必要です)があることを確認します。その後、3番目の要素を取得して値をトリミングし、先頭と末尾の空白を取り除きます。
配列サイズの確認が必要です。それ以外の場合は、存在しないインデックスで値を取得しようとすると例外が発生する可能性があります。