从网格中的某一列获取文本

时间:2019-07-03 16:20:06

标签: protractor automated-tests ui-automation

我有一个包含许多列的网格表,我必须获取第一列值的文本。网格表结构如下所示

有一个用于完整行的类,然后在该类内部,每个列单元格都具有相同的类

a = df2.to_numpy()[..., None, None]
b = df1.to_numpy()[None, None, ...]
df2.assign(Checked=(a == b).any(axis=(1, 2, 3)))

      Site_x    Site_y  Checked
0  CTBX3901E  CTBX3901     True
1    CTB3901  CTB3901E     True
2  CTBZ3901E  CTBZ3901     True
3  CTBY3901E   CTB3901     True
4  MADX6379E  MADX6379    False

像这样,大约有1000行。我必须遍历每一行并获取仅日期列值的文本

预期:我应该在数组中获取日期列类的文本

2 个答案:

答案 0 :(得分:1)

如果我理解正确,那么您要遍历每一行并获取datecolumn的值。从您的代码中,我看到行和列的类名显示为不同的类名。但我认为它们是相同的。如果您可以从源代码中复制代码,则将更有帮助。无论如何,以最少的信息,我有以下代码可以读取每一行中的dateColumn并输出该列中的数据。

const datecolumns = element.all(by.css("div.row .datecolumn"));
 //If there is another child tag below datecolumn and the text is in that tag then you need to include that class in the above element finder 

            datecolumns.map(function (eachDateColumn, index) {
                eachDateColumn.getText().then(function (dateValue) {
                    console.log("Date value in column " + index + " is " + dateValue)
                })
            })

更直接的方法:

const datecolumns = element.all(by.css("div.row .datecolumn")).getText();

答案 1 :(得分:0)

正好是1000行?它们以<div class = 'row1'>开始并以<div class = 'row1000'>结尾吗?
在这种情况下,元素定位符本身应为: element(by.css('.row1 .datecolumn2'));
然后,如果要遍历所有行,只需像这样更改它:

for (i= 1; i < rows.length; i++) {
    element(by.css('.row' + i + '.datecolumn2')).getText();
    // here you do whatever you need to do with the text
}