使用的webdriver使用javascript通过HTML行和表格列迭代(量角器非角度的)(Ite

2019-10-20 21:45发布

我想通过使用硒的webdriver(我使用了无棱角网页量角器)的行和列进行迭代。 我得到的做使用这种使用Java代码的链接数量WebElement类。 不过,我需要做到这一点使用JavaScript代码。

谢谢,Skshi

Answer 1:

以下工作:

browser.driver.findElement(by.id('table_id')).then(function(table){
    table.findElement(by.tagName('tbody')).then(function(tbody){
        tbody.findElements(by.tagName('tr')).then(function(rows){
            for(i=0; i<rows.length;i++)
            {
                rows[i].findElements(by.tagName('td')).then(function(cols){
                    expect(cols[2].getText()).toMatch('ok');
                });

            }

        });
    });
});

谢谢,Skshi



Answer 2:

var testData = [
    ['row 0, cell 0', 'row 0, cell 1', 'row 0, cell 2'],
    ['row 1, cell 0', 'row 1, cell 1', 'row 1, cell 2'],
    ['row 2, cell 0', 'row 2, cell 1', 'row 2, cell 2'],
];

// Traverse rows
$$('tr').each(function(rowElm, r) {
    // Traverse cols
    rowElm.$$('td').each(function(cellElm, c) {
        // Workout cell
        expect(cellElm.getText()).toContain(testData[r][c]);
    });
});


Answer 3:

最简单的方法是使用XPath

browser.driver.findElement(by.xpath("//table[@id='table_id']/tbody//tr")).then(function(rows){
  //your code...
  for(i=0; i<rows.length;i++){
    rows[i].findElements(by.tagName('td')).then(function(cols){
       expect(cols[2].getText()).toMatch('ok');
    });
  }
})


文章来源: Iterate through HTML rows and columns of a table using webdriver using javascript(Protractor non-angular)