Ag-сетка доступа и редактирования ячейки из испытаний Protractor e2e - PullRequest
0 голосов
/ 09 ноября 2018

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

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

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

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

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

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

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

cellElement.sendKeys('some value');

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

Одна вещь, которую я обнаружил, это то, что когда ячейка не в фокусе или в режиме редактирования , я вижу эти классы в devtool, добавленном к элементу ячейки:

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, даже если обычно предполагается, что он похож на простой простой тест для создания.

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

1 Ответ

0 голосов
/ 10 ноября 2018

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

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+. К сожалению это, не документированы какие-либо изделия в официальной документации.

...