量角器:如何在数组中存储值,然后进行排序



我需要对表下的列表字符串进行排序,因此我已经编写了以下代码行,但在控制台上我没有得到任何值:

var j = 9;
var rows = element.all(by.repeater('row in renderedRows'));
var column = element.all(by.repeater('col in renderedColumns'));
expect(rows.count()).toEqual(5); //here its printing number of rows
expect(column.count()).toEqual(5); //here its printing number of columns
var arr = [rows.count()];
for (var i = 0; i < rows.count(); i++) {
    console.log("aai" + i);
    if (i = 0) {
        //var columnvalue=column.get(9).getText();
        var columnvalue = column.get(9).getText().then(function(ss) {
            return ss.trim();
            arr[i] = ss.trim(); //here it will save the value first value of column
            console.log("value1" + arr[i]);
            expect(arr[i]).toEqual('DN');
            console.log("aa" + ss.trim());
        });
    } else {
        var j = j + 8;
        var columnvalue = column.get(j).getText().then(function(ss) {
            return ss.trim();
            arr[i] = ss.trim(); //here it will save the other values of column
            console.log("value" + arr[i]);
            expect(arr[i]).toEqual('DN');
            console.log("ab" + ss.trim());
        });
    }
}

SortingUnder_Table:function(col){

  test = [];
  var m;
  var dm = 0;
  element(by.xpath('//div[@class="ngHeaderScroller"]/div['+col+']')).click();
  element.all(by.repeater('row in renderedRows')).then(function(row) { 
      m = row.length;
  for (i = 1; i <= row.length; i++) 
  {
    user_admin_table_name = browser.driver.findElement(by.xpath('//div[@class="ngCanvas"]/div['+i+']/div['+col+']'));
        user_admin_table_name.getText().then(function(text) {
        var test_var1 = text.toLowerCase().trim();
        test.push(test_var1);
        var k = test.length
        if (k == m){
          for (j = 0; j < test.length; j++){
            test.sort();
            d=j+1;
            user_admin_table_name1 = browser.driver.findElement(by.xpath('//div[@class="ngCanvas"]/div['+d+']/div['+col+']'));
            user_admin_table_name1.getText().then(function(text1) {
            var test_var2 = text1.toLowerCase().trim();      
            if (test_var2 == test[dm]){
              expect(test_var2).toEqual(test[dm]);
              dm = dm +1; 
            }else {
              expect(test_var2).toEqual(test[dm]);
              log.error("Sorting is not successful");
              dm = dm +1; 
            }
          });
          }
        }
     });   
    }
  });

},

您可以使用此代码进行排序和验证它是否已排序

我不确定上面的例子是如何进行排序的,但这里有一个修剪然后排序的通用解决方案:

var elementsWithTextToSort = element.all(by.xyz...);
elementsWithTextToSort.map(function(elem) {
  return elem.getText().then(function(text) {
    return text.trim();
  });
}).then(function(trimmedTexts) {
  return trimmedTexts.sort();
}).then(function(sortedTrimmedTexts) {
  //do something with the sorted trimmed texts
});

最新更新