RobotFramework:如何检索与单元格值相对应的数组行

时间:2018-09-18 09:40:52

标签: selenium xpath robotframework

在我正在使用的UI中,对于一个对象,有一个铅笔或一个篮子图标;我想单击一个铅笔(这将触发一个编辑模式),并想对特定对象进行操作。

现在我使用以下命令行:

Click Element xpath = (//a[@ng-click="openCreateEditModal (holding)"])[2]

我想用与“ RF-Account”值相对应的行的值替换“ 2”。

以下是HTML的示例:

<tbody ng-if="!isEmpty" class="body-table ng-scope" style="height: 165px;">
        <!-- ngRepeat: tenant in tenants track by $index --><tr ng-repeat="tenant in tenants track by $index" class="ng-scope" style="">
            <td class="ng-binding">RF-Accou</td>
            <td>
                <span class="text-bold ng-binding text-muted" ng-class="{'text-green' : tenant.status == 'ACTIVE', 'text-muted' : tenant.status == 'INACTIVE'}">INACTIVE</span>
            </td>
            <td style="width:118px">
                <div class="pull-right">
                    <a name="editBtn" type="submit" class="btn-icon" ng-click="openCreateEditModal(tenant)">
                        <span class="icon-i-edit fs" data-toggle="tooltip" title=""></span>
                    </a>
                    <a name="deleteBtn" type="submit" class="btn-icon" ng-click="deleteTenant(tenant)">
                        <span class="icon-i-trash fs" data-toggle="tooltip" title=""></span>
                    </a>
                </div>
            </td>
        </tr><!-- end ngRepeat: tenant in tenants track by $index --><tr ng-repeat="tenant in tenants track by $index" class="ng-scope">
            **<td class="ng-binding">RF-Account</td>**
            <td>
                <span class="text-bold ng-binding text-muted" ng-class="{'text-green' : tenant.status == 'ACTIVE', 'text-muted' : tenant.status == 'INACTIVE'}">INACTIVE</span>
            </td>
            <td style="width:118px">
                <div class="pull-right">
                    <a name="editBtn" type="submit" class="btn-icon" ng-click="openCreateEditModal(tenant)">
                        <span class="icon-i-edit fs" data-toggle="tooltip" title=""></span>
                    </a>
                    <a name="deleteBtn" type="submit" class="btn-icon" ng-click="deleteTenant(tenant)">
                        <span class="icon-i-trash fs" data-toggle="tooltip" title=""></span>
                    </a>
                </div>
            </td>
        </tr><!-- end ngRepeat: tenant in tenants track by $index --><tr ng-repeat="tenant in tenants track by $index" class="ng-scope">
            <td class="ng-binding">RF-Accountfirst</td>
            <td>
                <span class="text-bold ng-binding text-muted" ng-class="{'text-green' : tenant.status == 'ACTIVE', 'text-muted' : tenant.status == 'INACTIVE'}">INACTIVE</span>
            </td>
            <td style="width:118px">
                <div class="pull-right">
                    <a name="editBtn" type="submit" class="btn-icon" ng-click="openCreateEditModal(tenant)">
                        <span class="icon-i-edit fs" data-toggle="tooltip" title=""></span>
                    </a>
                    <a name="deleteBtn" type="submit" class="btn-icon" ng-click="deleteTenant(tenant)">
                        <span class="icon-i-trash fs" data-toggle="tooltip" title=""></span>
                    </a>
                </div>
            </td>
        </tr><!-- end ngRepeat: tenant in tenants track by $index -->
    </tbody>

我试图找到与文本值“ RF-Account”相对应的行。 供您参考,“ RF-Account”行可以更改。

您能帮我找到用于Robot Framework的正确关键字吗?

2 个答案:

答案 0 :(得分:0)

重新表达您的问题-您需要一个可以让您了解的定位器,而不是robotframework关键字(该关键字为Click Element)。

如果您的锚点是文本,那么此xpath将为您完成此操作:

//td[text()="RF-Account"]/following-sibling::td//a[@ng-click="openCreateEditModal(tenant)"]

让我解释一下:第一部分(//td[text()="RF-Account"])将选择一个td元素,其文本为“ RF-Account”。然后,它将寻找后续的td(“后继轴”),它有一个a子代,该值具有ng-click的值-并将其返回(a )。

顺便说一句,在示例源中没有“ openCreateEditModal(holding)”,因此我已使用“ tenant”对其进行了更改。

答案 1 :(得分:0)

要获得计数,您可以使用

获取匹配的XPath计数// td [。=“ RF-Account”]