我的 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 在我在控制台中登录时被评估为未定义,即使它具有价值?见附图。
此外,最后一个 for 循环不会在控制台中显示任何内容。谁可以给我解释一下这个?
请提前帮助和感谢。