Protractor / Javascript - 将函数传递给expect子句的值的参考语法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Protractor / Javascript - 将函数传递给expect子句的值的参考语法相关的知识,希望对你有一定的参考价值。

量角器和javascript的新手让我轻松自如。在使用我的expect子句之前,有人能告诉我一个额外行的语法来调用函数中的下一个页面对象(在我的测试规范中)吗?

页面对象中的方法/功能:

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不是函数

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

谢谢!

科斯蒂

答案

使用以下代码段修改您的代码。

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']);
});   
另一答案

您的页面对象功能有一些问题。

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来检查页面对象中标题的值是什么样的 编辑

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;
      });
    };

评论我你得到了什么

以上是关于Protractor / Javascript - 将函数传递给expect子句的值的参考语法的主要内容,如果未能解决你的问题,请参考以下文章

object不是构造函数Protractor Javascript

Protractor / Javascript - 将函数传递给expect子句的值的参考语法

使用 Protractor+AXIOS 进行 API 测试

angular 调试 js (分 karms protractor / test e2e unit )

经验分享JavaScript实现UI自动化心得

25个超有用的 AngularJS Web 开发工具