私はセレン グリッドでテストを行っています。JSON 応答と比較するために、Web テーブルから検索結果を抽出し、それを Java テーブルまたはリストに挿入する必要があります。
これが私のJSON応答の形式です:
{
"facets":
{
"application":
[
{
"name": "38",
"distribution": 1
}
],
"node":
[
{
"name": "frstlwardu03_05",
"distribution": 1
}
],
"area":
[
{
"name": "x",
"distribution": 1
}
],
"company":
[
{
"name": "war001",
"distribution": 1
}
]
},
"duObjects":
[
{
"id": "TASK|TSK(ZRM760J)(000)(ZRM760JU00)(000)|ZSRPSRM000",
"name": "TSK(ZRM760J)(000)(ZRM760JU00)(000)",
"mu": "ZSRPSRM000",
"label": "",
"session": "ZRM760J|000",
"sessionLabel": "SAP SRM Achats frais generaux execution",
"uprocHeader": "ZRM760JU00|000",
"uprocHeaderLabel": "Header for SRM760J",
"uprocHeaderType": "CL_INT",
"domain": "M",
"domainLabel": "",
"application": "38",
"applicationLabel": "magasin",
"highlightResult":
{
"name": "name",
"word": "TSK"
}
}
],
"totalCount": 1,
"pageSize": 10,
"pageCurrent": 1,
"pageNb": 1
}
そして、ここに私がウェブサイトから得ているものがあります:
<table class="table table-striped table-hover table-condensed table-bordered">
<tbody>
<tr class="ng-scope" ng-repeat="object in objects">
<td>
<a target="_blank" href="#/en/object/TASK|TSK(IAM720JUA5)(000)|BIST_CE891">
<p style="font-size:11px;">
</td>
</tr>
<tr class="ng-scope" ng-repeat="object in objects">
<td>
<a target="_blank" href="#/en/object/TASK|TSK(ITP191HF10)(000)|RITP_BDDH1">
<p style="font-size:11px;">
</td>
</tr>
</tbody>
</table>
私がやりたいことは、json オブジェクトまたは配列から duobject 名の値を抽出し、それを HTML テーブルの値と比較することです。
これまでのところ、これは私が書いたコードですが、そのjsonオブジェクトとhtmlテーブルを反復処理して結果を比較する方法については、ちょっとブロックされています:
このコードは API URL を読み取り、json の duObjects 名を抽出します。
public static String getresults (String URL) throws IOException, JSONException
{
JSONObject json = readJsonFromUrl(URL);
return json.getJSONArray("duObjects").getJSONObject(0).getString("name");
}
このコードは、selenium を駆動して、Web ページに検索キーワードを入力し、json 要求に使用されるのと同じ API を使用して検索します。
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( "tsk");
WebElement w2 = driver.findElement(By.xpath("(//button[@type='button'])[2]"));
w2.click();
このコードを使用して、フロント エンドの結果と JSON 応答の整合性を確認したいと考えています。