簡體   English   中英

Protractor 測試只測試 Angular 網格的一些行

[英]Protractor test only testing some rows of Angular Grid

我正在嘗試編寫一個 Protractor 測試來驗證 Angular 網格第一行中每個單元格內的文本。

Angular Grid有299行,但不知為何只測試了30行。

我刪除了下面的一些預期結果錯誤消息,以使其更易於閱讀。

Protractor 代碼:

it('should validate the Spec column(first column) in the Table', () => {
        element.all(by.css('div.ag-cell[col-id="Spec"]'))
            .map(function (cell) {
                return cell.getText();
            })
            .then(function (cellValues) {
                expect(cellValues).toEqual(["2205", "2205", "2304", "2507", "254SMO", "26-4-4", "29-4", "302", "304", "304H", "304L", "304N", "305", "308", "309", "309S", "310",
                    "310S", "316", "316H", "316L", "316N", "317", "317L", "321", "321H", "329", "330", "347", "3RE60", "405", "409", "410", "410S", "420", "430", "440A", "440B", "440C", "44LN",
                    "654SMO", " 70/30 CuNi", "7Mo Plus", plus a lot more expected results]);
            })
    });

錯誤信息:

    Expected $.length = 30 to equal 299.
    Expected $[30] = undefined to equal '405'.
    Expected $[31] = undefined to equal '409'.
    Plus a lot more

有人能告訴我為什么它只收集了一些細胞嗎?

下面,您可以看到顯示為undefined的行之一有col-id="Spec"所以我不知道為什么在測試中沒有找到它

在此處輸入圖像描述

注意:我檢查了沒有被拾取的細胞,它們有col-id="Spec"

如果您對端到端不嚴格(測試用例嚴格遵循用戶體驗),您可以使用browser.executeScript()獲取所有行,如下所示:

let _ = function(){
  cells = document.querySelectorAll('div.ag-cell[col-id="Spec"]')
  return Array.from(cells).map(function(cell){ return cell.textContent })
}

browser.executeScript(_).then(function(cellValues){
  expect(cellValues).toEqual(...)
})

似乎,您的前 30 列僅顯示在當前頁面中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM