【问题标题】:How to get text of each cell from 1st 2 rows of ag-grid in protractor如何从量角器中的第一 2 行 ag-grid 中获取每个单元格的文本
【发布时间】:2019-05-21 13:22:27
【问题描述】:

我有一个 3 行的角网格。所有三行都属于同一类 A。但每行都有它 xpath webelement B (//div)。如何遍历第一两行的每个单元格并获取数组中的值?请帮帮我。

没有中继器。当我尝试使用 div xpath webelement B 获取第一行每个单元格的文本时,它给了我这样的结果:

cell1
cell2
cell3

但我需要这种格式的结果

['cell1', 'cell2', 'cell3']

当我得到 A 类的文本时,它会以正确的格式给我,但是 3 行的所有单元格都来了。像 ['cell1', 'cell2', 'cell3', 'cell6'........]

我是这样写的:

var expectedCells = element.all(by.css('.A); - using class A
expectedCells.each((eachCell) => {
    eachCell.getText().then((cellText) => {
        expect(expectedCells).toEqual([['cell1', 'cell2', 'cell3'])
    });
}) 

预期:['cell1', 'cell2', 'cell3']

实际:只给我最后一个单元格文本

【问题讨论】:

    标签: selenium-webdriver protractor ui-automation


    【解决方案1】:

    你可以用更少的线来做,使用地图:

    let elements = element.all(by.css('.A'));
    
    elements.map(el => el && el.getText()).then( textarray => {
        expect(textarray).toEqual(['cell1', 'cell2', 'cell3']);
    });
    

    【讨论】:

    • 谢谢。你的代码中的这个 el you 是什么?我们是在遍历每一行吗?
    • 有关地图,您可以在此处阅读更多信息:medium.com/poka-techblog/…
    【解决方案2】:

    试试下面这个

    var expectedArray[] = ['cell1', 'cell2', 'cell3'];
    var expectedCells = element.all(by.css('.A); - using class A
    var textArray[];
    for(i=0;i<expectedCells.count();i++){
        expectedCells.get(i).getText().then((cellText) => {
        textArray[i]= cellText;
     });
    }
    expect(textArray).toBe(expectedArray);
    

    希望以上代码对你有所帮助。

    【讨论】:

    • 谢谢。我尝试了一些类似的操作,但出现了一个错误,例如 count is not a function。我现在就试试你的代码。
    猜你喜欢
    • 2020-11-20
    • 2016-03-28
    • 2021-09-22
    • 2022-11-30
    • 2021-07-18
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多