量角器/ Js-无法获得准确的表行和列数

时间:2018-10-12 15:42:49

标签: javascript css css-selectors protractor

我正在尝试使用量角器/ Js验证表中的行数和列数。

我尝试了以下四个函数,但返回的结果不准确。我相信我的定位器可能有误-'。tsc_table_s13'

行:

 $(locator).all(by.xpath('.//tbody/tr')).count().then(function (data) {
            expect(data).to.equal(parseInt(myCount));
        });

或者...

var table = element.all(by.css(locator));
        table.all(by.tagName("tr")).count().then(function (data) {
            expect(data).to.equal(parseInt(mycount));
        });

列:

$(locator).all(by.xpath('.//tbody/tr/td')).count().then(function (data) {
            expect(data).to.equal(parseInt(myCount));
        });

或者...

var table = element.all(by.css(locator));
        table.all(by.tagName("td")).count().then(function (data) {
            expect(data).to.equal(parseInt(myCount));
        });

当我测试列数时,将返回25(或26),并且我期望只有6。 当我测试行计数时,我期望4时返回0。 该表可以在这里找到-http://toolsqa.com/automation-practice-table/

2 个答案:

答案 0 :(得分:0)

返回的计数是正确的,因为如果您手动测试chrome内的定位器,您将看到相同的结果。

首先,您从定位器.tsc_table_s13获得结果,并在其顶部连接新的定位器。

附加结果 enter image description here enter image description here

答案 1 :(得分:0)

这是简单的解决方案      //test.spec.js

 describe('all rows and columns', function() {
   var rows;
   var cols;
beforeEach(function() {
  browser.waitForAngularEnabled(false);
  browser.get('http://www.toolsqa.com/automation-practice-table/');

  rows = element.all(by.xpath('.//tbody/tr'));
  cols=element.all(by.xpath('.//tbody/tr[1]/td'));
}); 

it('should list row and column counts', function() {
  //expect(rows.count()).toEqual(4);
  //expect(cols.count()).toEqual(6);
  rows.count().then(function(cnt) {
  console.log(cnt);
  })
  cols.count().then(function(cnt) {
  console.log(cnt);       
   })
  });
 });