キーワードを入力して結果を HTML テーブルの形式で取得する Web アプリケーションをテストしています。後で別のリストと比較するために、このテーブルからテキストを抽出してリストに保存したいと考えています。
検索を開始し、テーブルをリストに保存するコードは次のとおりです。
@Parameters({"keyword" , })
@Test
private void srch(String keyword ) throws JsonParseException, JsonMappingException, MalformedURLException, IOException {
driver.get(TestURL);
WebElement input1 = driver.findElement(By.xpath("html/body/div[1]/div/div[2]/div/form/input[1]"));
input1.sendKeys("guest");
WebElement input2 = driver.findElement(By.xpath("html/body/div[1]/div/div[2]/div/form/input[2]"));
input2.sendKeys("guest");
WebElement btn = driver.findElement(By.xpath("html/body/div[1]/div/div[2]/div/form/button"));
btn.click();
WebElement w1 = driver.findElement(By.xpath("html/body/header/nav/div[1]/form/div/input"));
w1.sendKeys(keyword);
WebElement w2 = driver.findElement(By.xpath("(//button[@type='button'])[2]"));
w2.click();
List<WebElement> resultsDiv = driver.findElements(By.xpath("html/body/div[1]/div[2]/div/div/div[1]/table"));
System.out.println(resultsDiv.size());
for (int i=0; i<resultsDiv.size(); i++) {
System.out.println(i+1 + ". " + resultsDiv.get(i).getText());
}
}
system.out.println を追加して、テーブルから得ているものを確認しています。
ここに私のテーブル構造があります:
HTML コード:
<table class="table table-striped table-hover table-condensed table-bordered">
<tbody>
<!-- ngRepeat: object in objects -->
<tr class="ng-scope" ng-repeat="object in objects">
<td>
<a target="_blank" href="#/en/object/TASK|TSK(IAM720JUA5)(000)|BIST_CE891">
<b class="ng-binding">TSK(IAM720JUA5)(000)</b>
</a>
<p style="font-size:11px;">
</td>
</tr>
実際のウェブ表示
TSK(IAM720JUA5)(000)
JOB IAM720JUA5|000Chargement des OR CE891 PSIEP23P Flux 5 場所: BIST_CE891 名前: TSK
取得したいのはTSK(IAM720JUA5)(000)の部分だけです。
ただし、現在のコードは次のように表示されます。
1 1. 1 1. 1 1. 1 1. 1 1. 1 1. TSK(ARS090J)(000)(ARS090JN30)(000)
WORKFLOW ARS090J|000 Arret et redemarrage des services WEB /
場所: RARS_APP02 名前: TSK 1 1. 1 1. 1 1. 1 1. TSK(Z63700J)(000)(Z63700JU10)(000)
WORKFLOW Z63700J|000 ランスメントが CFT Z63 をリボンド
場所: RZ63_ECH01 名前: TSK 1 1. 1 1. 1 1. 1 1. 1 1. 1 1. 1 1. 1 1. 1 1.
ループ内のコードを変更する必要があることはわかっていますが、続行する方法がわかりません。
ありがとう