Добавьте два параметра в функцию "тогда" транспортир

Это вполне понятно. У меня есть массив с некоторыми ссылками, и я хочу создать цикл, чтобы попробовать их все, но проблема в том, что ссылка всегда равна 3. Это означает, что она читает последнее число в моем массиве. Зачем? Как я могу это исправить?

var categories = ['1','2','3'];
for( var i = 0; i < categories.length; i++ ) {
    var link = '/'+categories[i];
    browser.get(link);
    browser.sleep(2000);
    browser.driver.getCurrentUrl().then( function(url) {
        expect(url).toMatch(link);
    });
}

и у меня есть список делений, и я хочу прочитать случайную информацию от них. Итак, я сделал следующее

chosenOffer         = Math.floor( (Math.random() * count ) + 1);
offer               = element.all( by.className('offer')).get( chosenOffer );

Но он всегда показывает сообщение об ошибке selectedOffer объект...

1 ответ

Решение

Это классическая проблема закрытия, которая подробно описана в:

В вашем случае просто позвольте expect() решить обещание:

var categories = ['1','2','3'];

for (var i = 0; i < categories.length; i++) {
    var link = '/' + categories[i];
    browser.get(link);
    browser.sleep(2000);

    expect(browser.driver.getCurrentUrl()).toMatch(link);
}
Другие вопросы по тегам