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 が値を持っていても、コンソールにログを記録すると undefined と評価されるのはなぜですか? 添付の画像を参照してください。

  2. また、最後の for ループはコンソールに何も表示しません。誰かが私にこれを説明できますか?

助けてください、事前に感謝します。

4

0 に答える 0