量角器Promise回调没有显示内容。如何调用返回项的方法?

时间:2015-05-04 20:18:43

标签: javascript selenium-webdriver jasmine protractor

在下面的代码中,当调试器被命中时,thing / item的值不显示任何内容(参见图片)..

it('CheckAllLinks:', function () {
    browser.ignoreSynchronization = true;
    browser
        .findElements(by.tagName('a'))
        .then(function (items) {
           items.forEach(function (item) {
              var thing = item;
              debugger;
        });
    });
 });

例如,对这些方法的任何调用仅使用Visual Studio中的立即窗口返回三个点。 (...); enter image description here

我意识到这是一个承诺,但不了解如何使用任何方法来验证内容并点击链接...

1 个答案:

答案 0 :(得分:1)

找到答案与这些称为单位的承诺相关的事实有关。当.then语句被命中时,将实现Promise。在下面的示例中,承诺了两件事,即每个链接的文本和href。

it('CheckAllLinks:', function () {
    browser.ignoreSynchronization = true;
    browser
        .findElements(by.tagName('a'))
        .then(function (items) {
        items.forEach(function (item, i) {
            var test = item.getText().then(function (text) {
                item.getAttribute('href').then(function (href) {
                    debugger;
                });
            });
        });
    });
});