首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript Protractor获取列中的所有值并对其求和

Javascript Protractor获取列中的所有值并对其求和
EN

Stack Overflow用户
提问于 2018-09-21 17:46:30
回答 1查看 140关注 0票数 0

我想从网页上的表格中的一列中获得所有的值,直到该列不包含元素,求和值,并返回和作为承诺。

代码语言:javascript
复制
   TablePage.prototype.getPriceValuesFromList = function () {
      for (number = 1; number < 100; number++) {
          var locator = '//*[@id="root"]/main/section/table/tbody/tr[' + number + ']/td[3]/div[2]';
            browser.findElement(By.xpath(locator)).then(function (success) {
            if (success) {
                var locator = '//*[@id="root"]/main/section/table/tbody/tr[' + number + ']/td[3]/div[2]';
                return element(By.xpath(locator)).getText().then(function (text) {
                    numb = text.replace(/,/g, '');
                    numb = numb.replace(/\$/g, '');
                    numb = numb.replace(/\./g, '');
                    prices[number] = parseInt(numb);
                    console.log(prices[number]);
                    var sum = prices.reduce(function(a, b) { return a + b; }, 0);
                    console.log(sum);
                    return sum
                })
            }
            else {
                break;
                }
            })
      }
    };

我得到:“非法中断声明”

到底该怎么做呢?

我需要定义两次"locator“吗?

EN

回答 1

Stack Overflow用户

发布于 2018-09-23 06:26:19

您可以使用element.all()查找第三列的所有td,然后使用map()td的每个文本值转换为Number

代码语言:javascript
复制
TablePage.prototype.getPrice2List = function(){

    return element
        .all(by.css('#root table tbody tr > td:nth-child(3)'))
        .map(function(item){
            // replace all non-numeric,non-dot, not-dash to ''
            return Number(item.replace(/[^\d\.-]/g, '').trim());
        });
};

tablePage.getPrice2List().then(function(prices){
    console.dir(prices);
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52440966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档