2016-07-25 3 views
0

Я прихожу из мира Python, и я немного смущен тем, как я могу добавить сон в свой тест (только в JS в течение недели). Я понимаю, что сон - это не лучшая практика, хотя я бы просто хотел узнать, как это можно сделать. В настоящее время у меня есть тест, который запускает браузер, а затем немедленно выходит из строя, потому что время загрузки на странице. Для целей отладки я хотел бы приостановить тест на пару секунд. В настоящее время у меня это не работает. Спасибо за ваши ответы.Спит, waitUntil, waitForVisible, waitForExist webdriverio

var assert = require('assert'); 

describe('basic login', function() { 
it('verify user is able to login', function() { 
    browser.url('http://localhost:3000'); 
    var elem = browser.element('div.accounts-dropdown > div.dropdown-toggle > span'); 
    //elem.waitForVisible(2000); //not working 
    //elem.waitForExist(3000); //not working 
    return browser.waitUntil (function async() { 
     elem.click(); 
     browser.setValue('//input', '[email protected]'); 
     browser.setValue('//div[2]/input', 'kU3SPn75'); 
     browser.click("//button[@type='submit']"); 
     assert('//li/div/button'); 

    }, 50000, 'something_test'); 
    //browser.click('div.accounts-dropdown > div.dropdown-toggle > span'); 
}); 

});

+3

Там нет спальных места, вы должны [блокировать поток] (http://stackoverflow.com/questions/20967006/how-to-create-a-sleep- delay-in-nodejs-that-is-blocking) и повесить браузер, вот почему это большой нет-нет. Используйте обработчик событий, который запускается при загрузке страницы, например, 'window.onload' и т. Д. – adeneo

ответ

-1

я в конечном итоге получить следующие работы:

function sleep(time, callback) { 
var stop = new Date().getTime(); 
while(new Date().getTime() < stop + time) { 
    ; 
} 
callback(); 

}

0

browser.pause (миллисекунды) будет делать именно то, что вы хотите.

browser.pause(1000);