Доступ к Ag-сетке и редактирование ячейки из тестов Protractor e2e

Я ищу правильный способ сквозного тестирования (e2e) углового приложения ag-grid.

в документации транспортира говорится, что вы можете использовать от by.model(modelName) до sendKeys в поле ввода, используя ng-model.

https://www.protractortest.org/#/api?view=ProtractorBy.prototype.model

Но ng-модель не является директивой angular 2

Я пробовал, например, этот метод, но он не работает:

const cellElement = element(by.model('row.name'));

browser.actions().click(cellElement).perform(); //to get focus on cell

cellElement.sendKeys('some value');

Но это не дает никакого результата, на ячейке нет фокуса, в ячейке нет курсора, когда я отлаживаю код Visual Studio.

Я обнаружил, что когда ячейка не находится в фокусе или в режиме редактирования, я вижу эти классы в инструменте разработки, добавленные к элементу ячейки:

ag-cell, ag-cell-with-height, ag-cell-value, ag-cell-not-inline-editing, ag-cell-focus

И когда я дважды щелкаю в ячейке вручную без транспортира (что я даже не могу заставить работать), я вижу эти классы, добавленные к элементу в chrome devtool:

ag-cell, ag-cell-with-height, ag-cell-value, ag-cell-focus, ag-cell-inline-editing

можно ли добавить класс ag-cell-inline-editing к элементу и заставить ячейку получать содержимое, которое мы ей отправляем?

так как я вижу, что в официальной документации нет задокументированного способа выполнить эти расширенные тесты e2e транспортира, даже если обычно предполагается, что это похоже на базовый простой тест для создания.

Есть ли способ заставить это работать и иметь возможность выполнять, например, проверку содержимого ячейки? означает, что если я редактирую содержимое ячейки, моя форма действительна? и все это с помощью простого транспортира.


person HDJEMAI    schedule 09.11.2018    source источник


Ответы (1)


Решение, которое я нашел для этого:

1- выберите ячейку ag-grid, которую мы хотим отредактировать:

const gridCell = element(by.css(`[role='gridcell'][col-id='colModelName']`));

2- двойной щелчок по ячейке, чтобы включить режим редактирования в ag-сетке:

await browser.actions().doubleClick(gridCell).perform();

3- Наконец, отправьте нужное значение в ячейку:

await browser.actions().sendkeys('data value').perform();

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

Надеюсь, что это поможет любому, кто пытается провести тестирование e2e ag-grid, так как я боролся с тем, как использовать by.model, хотя он еще не работает в Protractor для angular 2+. К сожалению, это не задокументировано в официальной документации.

person HDJEMAI    schedule 10.11.2018
comment
Вы только что спасли меня от головной боли. Спасибо!!!!! - person user2963022; 25.05.2021