繁体   English   中英

量角器e2e测试Angular UI网格单元格填充

[英]Protractor e2e test Angular UI grid Cell filling

在针对UI-Grid的量角器e2e测试中,我正在使用ui.grid.e2eTestLibrary.api:gridTest中提供的函数dataCell(gridId,fetchRow,fetchCol),

来源: -https : //github.com/angular-ui/ui-grid/tree/master/test/e2e

dataCell: function( gridId, fetchRow, fetchCol ) {
var row = this.getGrid( gridId ).element(by.css('.ui-grid-render-container-body')).element( by.repeater('(rowRenderIndex, row) in rowContainer.renderedRows track by $index').row( fetchRow )  );
return row.element( by.repeater('(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name').row( fetchCol ));}

在注释部分中明确提到,dataCell(fetchRow,fetchColumn)必须在页面中可见,以便访问数据单元并填充它。

@param {string} gridId您要检查的网格的ID

@param {integer} fetchRow要返回的行数(在可见行内)

@param {integer} fetchCol您要返回的列号(在可见列数内)

我的UI网格很大(〜100行和〜50列),因此所有行和列都不可见。 因此,为了在量角器自动测试期间使它们在页面中可见,我将dataCell()的代码修改如下:-

dataCell: function( gridId, fetchRow, fetchCol ) {

var row = this.getGrid( gridId ).element( by.css('.ui-grid-render-container-body')).element( by.repeater('(rowRenderIndex, row) in rowContainer.renderedRows track by $index').row( fetchRow )  );
browser.executeScript("arguments[0].scrollIntoView(true);", row.getWebElement());

return row.element( by.repeater('(colRenderIndex, col) in colContainer.renderedColumns track by col.uid').row( fetchCol ));

},

此后,应该滚动到适当的单元格,然后选择它并进行相应的编辑。

但是,我得到的dataCell是clickable(),但是当我通过方法给出输入时:-

cell.element(by.css("input")).sendKeys("Data to be filled");

量角器崩溃,显示的错误如下所示:-

Failed: No element found using locator: By(css selector, input).

请提出一种方法来编辑UI-grid中的网格单元,通过适当的滚动看不到这些单元。

采取的其他行动:-

通过增加创建UI网格的开发人员代码中的virtualizationThreshold和columnvirtualizationThreshold的值,我使用了一种呈现行和列的解决方法。 尽管现在遇到了性能问题,但单元仍可以正确定位。 RAM和交换已被自动化过程完全消耗,随后该过程变得太慢。 有什么办法可以解决内存性能问题?

很难对虚拟化数据进行自动化的端到端测试。 要找到它,它必须在DOM中,要进入DOM,必须滚动到它。 因此,您需要循环使用查找程序:find / scroll / find / scroll; 并且只有在您匹配或没有足够的空间滚动时才会爆发。 希望我错了,但是在ui.grid.e2eTestLibrary.api:gridTest中看不到有任何功能可以做到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM