2017-12-18 121 views
0

量角器和Javascript的新手对我来说很容易。任何人都可以告诉我一个额外的行的语法来调用函数中的以下页面对象(在我的测试规范中),然后再使用我的expect子句吗?量角器/ Javascript - 将函数传递到预期子句的值的参考语法

方法/函数在页面对象:

this.getHeaderText = function(){ 
    element.all(by.css('.ag-header-cell-text')) 
    .map(function(header){ 
     return header.getText() 
    }).then(function(headers){ 
    if (headers.toEqual(['Publisher Name', 'IpAddress', 'AddedDate', 'Delete Ip'])); 
    return 1; 
    }); 
}; 

测试规范的呼叫预计:

it('All headers are present', function(){ 
// Need syntax here for reference to pass PO function into a value to call below 
    expect(publisher_whitelist_page.getHeaderText.getText().toEqual(1)); 
}); 
}); 

结果我收到以下错误 - 失败:publisher_whitelist_page.getHeaderText.getText是不是一个功能

再次,任何帮助或建议,非常感激和欢迎!

谢谢!

Kirsty

回答

0

修改你的代码与贝尔ow snippet。

pageObject.js文件:

this.getHeaderText = function(){ 
    return element.all(by.css('.ag-header-cell-text')).getText(); 
} 

spec.js文件:

it('All headers are present', function(){ 
    expect(publisher_whitelist_page.getHeaderText()).toEqual(['Publisher Name', 'IpAddress', 'AddedDate', 'Delete Ip']); 
}); 
+0

修改如上,仍然出现错误:×所有头文件存在 - 失败:无法读取未定义的属性'toEqual' –

+0

我的不好!我忘了在'getHeaderText()'方法中添加return语句。我已经更新了我的答案,再试一次! –

+0

明白了,并表示感谢! :d –

0

您的页面对象函数有一些问题。

this.getHeaderText = function(){ 
    return element.all(by.css('.ag-header-cell-text')) 
    .map(function(header){ 
     return header.getText() 
    }).then(function(headers){ 
    if (headers.toEqual(['Publisher Name', 'IpAddress', 'AddedDate', 'Delete Ip'])); 
    return 1; 
    }); 
}; 

您不必再次调用.getText()。

试试这个。

expect(publisher_whitelist_page.getHeaderText()).toEqual(1); 

让我知道如果你还没有。

第一次使用的console.log检查什么是标题的页面object.like这个
编辑值

this.getHeaderText = function(){ 
    return element.all(by.css('.ag-header-cell-text')) 
    .map(function(header){ 
     return header.getText() 
    }).then(function(headers){ 
    console.log('data', headers, typeof headers); 
    }); 
}; 

更新2

this.getHeaderText = function(){ 
     return element.all(by.css('.ag-header-cell-text')) 
     .map(function(header){ 
      return header.getText() 
     }).then(function(headers){ 
     if(JSON.stringify(headers)==['Publisher Name', 'IpAddress', 'AddedDate', 'Delete Ip']) 
return 1; 
     }); 
    }; 

评论我你正在变得

+0

都能跟得上越来越当我使用上面下面的错误:元素检查所有接头都存在 - 预计未定义为等于1. - 失败:headers.toEqual不是函数 –

+0

您是否已将规范中的页面目标文件正确包含ILE。例如:通过使用require –

+0

是的,我在测试规范文件的顶部:var login_page = require('../ Pages/login_page.js'); –

相关问题