RobotFramework: как получить строку массива, соответствующую значению ячейки - PullRequest
0 голосов
/ 18 сентября 2018

В пользовательском интерфейсе, с которым я работаю, для объекта есть значок карандаша или корзины;Я хочу щелкнуть карандашом (который вызовет режим редактирования) и хочу сделать это для конкретного объекта.

Пока я использую эту командную строку:

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

Iхотел бы заменить «2» на значение строки, соответствующей значению «RF-Account».

Вот пример 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 голосов
/ 24 сентября 2018

Для подсчета вы можете использовать

Получить соответствующий счетчик XPath //td[.="RF-Account"]

0 голосов
/ 18 сентября 2018

Чтобы перефразировать ваш вопрос - вам нужен локатор, который вам это даст, а не ключевое слово 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 (hold)", поэтому я изменил его на "tenant", который присутствует.

...