我正在寻找正确的方法来进行端到端测试(e2e),即ag-grid角度应用程序。
量角器文档说,您可以使用ng-model使用by.model(modelName)
到sendKeys
到输入字段。
https://www.protractortest.org/#/api?view=ProtractorBy.prototype.model
但是ng-model不是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代码进行调试时,单元格上没有焦点,单元格中也没有光标。
我发现的一件事是当单元格不处于焦点或处于编辑模式时,我在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测试,即使通常认为它像创建一个基本的简单测试一样。
是否有任何方法可以使它正常工作并能够进行单元格内容验证?意味着如果我编辑单元格的内容,那么我的表格有效吗?以及所有这些仅使用量角器。
答案 0 :(得分:1)
我为此找到的解决方案是:
1-选择我们要编辑的ag-grid单元格:
const gridCell = element(by.css(`[role='gridcell'][col-id='colModelName']`));
2-双击单元格以在ag-grid上启用编辑模式:
await browser.actions().doubleClick(gridCell).perform();
3-最后将所需的值发送到单元格:
await browser.actions().sendkeys('data value').perform();
您可以考虑最后一步,例如,选择网格中某处的任何其他元素,然后单击它,这样,焦点将从已编辑的单元格中移出,然后您便可以真正选择任何其他元素从当前网页开始。
希望它对任何尝试进行e2e ag-grid测试的人都有帮助,因为我一直在努力使用by.model
,而在Protractor中它还不能用于角度2+。遗憾的是,官方文档中没有记录任何软件。