С этим у вас будет то, что вы хотите:
function sumValueInColumn(tableID, columnNumber, expectedResult){
var expectedCells = element.all(by.css('#'+tableID+' tr td:nth-of-type(2)'));
var currentSum = 0;
expectedCells.each((eachCell) => {
eachCell.getText().then((cellText) => {
currentSum += Number(cellText);
});
}).then(() => {
expect(currentSum.toString()).toEqual(expectedResult);
});
}//END OF sumValueInColumn
Итак, я объясню построчно
в этой строке вы фиксируете все значения столбцов из таблицы и определенного столбца.
Замените var tableID на id (или другой селектор CSS) вашей таблицы
часть кода 'nth-of-type (2)' относится к столбцам, поэтому в вашем случае это номер 2 для второго столбца ... вы можете сделать что-то вроде этого, чтобы сделать возможным получение значения из параметра функции :
var expectedCells = element.all(by.css('#'+tableID+' tr td:nth-of-type('+columnNumber+')'));
Итак, теперь переменная Ожидаемые ячейки имеет массив всех чисел (в виде строки)
В этой части вы получаете массив, получаете текст каждой позиции, преобразуете в Numeric и выполняете математическую операцию, которую вы хотите (sum):
* В вашем случае обработайте строку перед преобразованием в Числовое, убедитесь, что вы отправляете только цифры
expectedCells.each((eachCell) => {
eachCell.getText().then((cellText) => {
currentSum += Number(cellText);
});
})
Последняя часть представляет собой последовательность обещаний, которая позволит вам использовать переменную currentSum и сравнивать с ожидаемым значением (или просто делать что-то еще)