如何比较表中的名称列表

时间:2016-11-18 12:15:33

标签: protractor

我的测试场景是搜索姓氏并期望表​​中的所有名称是否等于搜索值。我有一个不同的功能来搜索姓氏。

我现在想要的是获取表中的所有名称并测试所有名称是否具有相同的值。我想在我的页面对象中使用以下函数,并在规范中的expect中使用它。怎么办?

我很困惑如何使用getText()并将它们推入数组并返回数组,以便我可以在期望中使用它

this.getAllBorrowerNamesInTable = function () {
    element.all(by.binding('row.borrowerName')).then(function (borrowerNames){
     });        
};

3 个答案:

答案 0 :(得分:1)

除了使用map()之外,您只需拨打getText()上的ElementArrayFinderelement.all()调用{<1}}的结果即可接近它:

this.getAllBorrowerNamesInTable = function () {
    return element.all(by.binding('row.borrowerName')).getText();
}

然后,您可以断言结果等于字符串数组:

expect(page.getAllBorrowerNamesInTable()).toEqual(["Borrower 1", "Borrower 2"]);

答案 1 :(得分:0)

我正在使用map() function来完成这项工作:

this.getAllBorrowerNamesInTable = function () {
    return element.all(by.binding('row.borrowerName')).map(function(elem) {
        return elem.getText();
    )};
}

答案 2 :(得分:-2)

您可以使用javascript'push'函数添加每个借用者名称,然后我们可以返回该数组;

this.getAllBorrowerNamesInTable = function () {
var names = [];
element.all(by.binding('row.borrowerName')).then(function (borrowerNames){
    borrowerNames.each(function(borrowerName) {
        borrowerName.getText().then(function(name) {
            names.push(name);
        });
    });
 });
 return names;        
};