来自Protractor e2e测试的Ag网格访问和编辑单元



我正在寻找端到端测试(e2e(ag网格角度应用程序的正确方法。

量角器文档说,可以使用ng模型将by.model(modelName)sendKeys用于输入字段。

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-cellag-cell-with-heightag-cell-valueag-cell-not-inline-editingag-cell-focus

当我在没有量角器的情况下手动双击单元格时(我甚至无法工作(,然后我看到这些类添加到chrome devtool中的元素中:

ag-cellag-cell-with-heightag-cell-valueag-cell-focusag-cell-inline-editing

是否可以将类ag-cell-inline-editing添加到元素中,并强制单元格接收我们发送给它的内容?

因为我在官方文档中看到,没有文档化的方法来进行这种高级量角器e2e测试,即使它通常被认为是一个基本的简单测试。

有什么方法可以让它发挥作用并能够进行例如单元格内容验证吗?意味着如果我编辑了单元格的内容,那么我的表单是否有效?所有这些都只用量角器。

我找到的解决方案是:

1-选择要编辑的ag网格单元:

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网格测试的人,因为我一直在为如何使用by.model而苦苦挣扎,而它还没有在角度2+的Protractor中工作。遗憾的是,官方文件中没有记录任何软件。

最新更新