在用于UI网格量角器E2E测试,我使用的函数DATACELL(gridId,fetchRow,fetchCol),这已在ui.grid.e2eTestLibrary.api提供了:gridTest,量角器E2E测试角UI网格单元填充
来源: - 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要检查
数(可见的cols内)@param {整数冲电网的id fetchRow行的,你想要回号码(可见行内)
@param {整数冲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,是可点击(),但是当我用该方法给出的输入: -
cell.element(by.css("input")).sendKeys("Data to be filled");
量角器是越来越坠毁,并表示这是显示错误如下: -
Failed: No element found using locator: By(css selector, input).
请建议一种方法,在UI网格中编辑网格单元格,这些网格单元格通过适当的滚动不可见。
采取Addtional操作: -
我用渲染的行和列,在创建UI电网的开发代码增加virtualizationThreshold和columnvirtualizationThreshold值的一种变通方法。单元格正确定位,虽然它现在触及性能问题。 RAM和交换正在被自动化过程完全消耗掉,随后这个过程变得太慢了。有没有解决内存性能问题的方法?