Protractor/Javascript - 将函数传递给 expect 子句的值的参考语法
Protractor/Javascript - Reference syntax to pass function into a value for expect clause
量角器和 Javascript 的新手所以请放轻松。在我使用 expect 子句之前,谁能告诉我额外一行的语法来调用函数中的以下页面对象(在我的测试规范中)?
Method/Function 在页面对象中:
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;
});
};
调用 expect 的测试规范:
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 不是函数
再次感谢和欢迎任何帮助或建议!
谢谢!
克斯蒂
您的页面 object 功能有一些问题。
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中headers的值是什么
编辑
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;
});
};
评论我你得到了什么
使用以下代码段修改您的代码。
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']);
});
量角器和 Javascript 的新手所以请放轻松。在我使用 expect 子句之前,谁能告诉我额外一行的语法来调用函数中的以下页面对象(在我的测试规范中)?
Method/Function 在页面对象中:
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;
});
};
调用 expect 的测试规范:
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 不是函数
再次感谢和欢迎任何帮助或建议!
谢谢!
克斯蒂
您的页面 object 功能有一些问题。
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中headers的值是什么
编辑
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;
});
};
评论我你得到了什么
使用以下代码段修改您的代码。
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']);
});