1

我的 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 声望。这就是为什么我把它上传到云端。请看这张图片。

https://copy.com/69qg0PiIf2KN

很明显,图片部分左侧是runner.html,右侧是chrome控制台。

所以这是我的问题。

  1. 为什么elements[i].innerText 在我在控制台中登录时被评估为未定义,即使它具有价值?见附图。

  2. 此外,最后一个 for 循环不会在控制台中显示任何内容。谁可以给我解释一下这个?

请提前帮助和感谢。

4

0 回答 0