2017-01-31 17 views
1

Я copypasted пример кода из документации WebdriverIO по поводу waitUntil (http://webdriver.io/api/utility/waitUntil.html):Невозможно использовать `waitUntil` WebdriverIO, потому что он не ждет

it('should wait until text has changed', function() { 
    client.waitUntil(function() { 
     return client.getText('#someText') === 'I am now different'; 
    }, 5000, 'expected text to be different after 5s'); 
}); 

Даже если #someText элемент не меняет свой текст «Я сейчас другой», клиент не ждет и сообщает об этом тест как о прохождении.

На самом деле, используя следующий код имеет точно такое же поведение, хотя я явно вернуть ложные (= он никогда не должен выйти из команды waitUntil):

it('should wait until text has changed', function() { 
    client.waitUntil(function() { 
     return false; 
    }, 5000, 'expected text to be different after 5s'); 
}); 

Что мне не хватает? Что я делаю не так?

Я использую [email protected] и webdriverio": "^4.6.2

ответ

0

Вы используете wdio тест бегун? Если да, то is 'sync' mode set to true? Если нет, то вам необходимо вернуть «клиент» на тест мокко:

it('should wait until text has changed', function() { 
    return client.waitUntil(function() { 
    return false; 
    }, 5000, 'expected text to be different after 5s'); 
}); 

В рамках теста, вы должны были бы использовать .then:

it('should wait until text has changed', function() { 
    return client 
     .waitUntil(function() { 
     return false; 
     }, 5000, 'expected text to be different after 5s') 
     .then(function() { 
     console.log('i am here now'); 
     }); 
});