0

私はセレン グリッドでテストを行っています。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 応答の整合性を確認したいと考えています。

4

1 に答える 1