[英]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.