Как выбрать данные c в таблице Dynami c с помощью транспортира? - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь автоматизировать некоторые сценарии ios, используя транспортир, где нам нужно проверить, обновляются ли данные в динамической c таблице.

Пожалуйста, найдите ниже

HTML Код: введите описание изображения здесь

Таблица на странице: введите описание изображения здесь

Ответы [ 2 ]

2 голосов
/ 01 мая 2020

Это можно сделать, убедившись, что элемент присутствует в DOM с добавленным идентификатором группы или именем группы.

Для идентификатора группы:

элемент (by.xpath ( "* // table // tbody // tr // td [1] // p [text () = 'Amanda Test Group']")). isDisplayed ()

для имени группы :

element (by.xpath ("* // table // tbody // tr // td [2] // p [text () = 'Amanda Group']"))). isDisplayed ()

0 голосов
/ 05 мая 2020

Я предполагаю, что вы используете Angular2 +, да?

В вашем шаблоне HTML вы, вероятно, используете директиву *ngFor для динамического заполнения таблицы. Добавьте индекс к *ngFor (это лучшие практики для обновления DOM), чтобы добавить динамический c идентификатор для каждого элемента:

    <tr *ngFor="let user of user; index as u" id="user-{{u + 1}}">
        <td id="userName-{{u + 1}}">
            {{user.firstName}} {{user.userName}}<br />
            {{user.userName}}
        </td>
        <td id="userRoles-{{ u + 1 }}">
            <span id="role-{{u + 1}}-{{ r + 1 }}" *ngFor="let role of user.roles; index as r">
                {{ role.toUpperCase() + ', '}}
            </span>
        </td>
        <!- Omitted code -->
    </tr>

В вашем объекте страницы:

// Get first user on the table
get firstUser() {
    return element(by.id('user-1');
}

// Get a specific user by id
public getUser(index: number) {
    return element(by.id(`user-${index}`);
}

// Get all of the attributes for a single user by id
get userAttributes(index: number) {
    return element.all(by.id(`user-${index}`);
}

Я не фанат xpath селекторов. Да, они быстрее. Но в коде, который является динамическим c или часто изменяется, они являются наиболее частыми из 1018 * селекторов. Нет никаких причин, по которым ваши динамические c данные не могут иметь динамический c идентификатор, который четко идентифицирует каждую часть кода, который вам нужен.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...