2017-12-18 119 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'); –

相關問題