簡體   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