angularJS アプリに次の e2e テスト コードがあります。
私の問題を理解するために、コードとコメントも読んでください。また、テストの出力を示す画像を添付しました。
it('should display the table header values', function() {
var _mockTopicTitles = [
{name: 'Course ID'},
{name: 'Title/Confluence'},
{name: 'Owner'},
{name: 'Date Created'},
{name: 'Reviewed Date'},
{name: 'NCRU'},
{name: 'Duration (Hrs)'},
{name: 'Survey'},
{name: 'NPS Stats'}
];
var promise = element(".tab-pane:first .panel-content table thead tr th", "traversing the table thead rows").query(function(elements, done) {
for (var i = 0; i < elements.length; i++) {
//a. This will log in the chrome console. See the attached image.
console.log("Elements[]", elements[i].innerText);
//b. However, elements[i].innerText is evaluated as undefined when running the test. See the image.
expect(elements[i].innerText).toEqual(_mockTopicTitles[i]["name"]);
}
done();
});
for (var i = 0; i < promise.length; i++) {
//c. Why the code below isn't logged in the chrome console?
console.log("Promise[]", promise[i].innerText);
}
});
評判が10必要なので、画像を直接添付することはできません。そのため、クラウドにアップロードしました。こちらの画像をご覧ください。
明らかに、画像部分の左側が runner.html で、右側が chrome コンソールです。
ここに私の質問があります。
elements[i].innerText が値を持っていても、コンソールにログを記録すると undefined と評価されるのはなぜですか? 添付の画像を参照してください。
また、最後の for ループはコンソールに何も表示しません。誰かが私にこれを説明できますか?
助けてください、事前に感謝します。