Список зацикливания в WebdriverIO

Я пытаюсь просмотреть список ссылок и выполнить несколько действий с каждой из них. WebdriverIO синхронны для тестового кода, такого как следующий (мокко), для всех своих API. Но как интегрировать существующий код node.js для синхронного потока. Для следующего кода

    const assert = require('assert');
    const webdriverio = require('webdriverio')

    describe('webdriver.io page', function() {

            it('should be a pending test');

            before(() => {

                var options = {
                    desiredCapabilities: {
                        browserName: 'chrome'
                    }
                };

                client = webdriverio.remote(options)
                return client.init();

            })
            after(function() {
                browser.end();
            });

            it('should have the right title - the fancy generator way', function () {
                var list = ["https://www.google.com", "https://www.yahoo.com", "https://www.github.com"]

                for(var i = 0 ; i < list.length;i++){
                    browser.url(list.length);
                    var title = browser.getTitle();
                    browser.saveScreenshot('./snapshot' + i + '.png').call(function(){
                        fs.exists(screenshotPath, function(fileExists) {
                            fileExists.should.be.true;
                            done();
                        })
                    });
                }
            });

        });

person Effectura    schedule 23.09.2017    source источник
comment
Вопрос не ясен. Пожалуйста, дайте дополнительную информацию   -  person Aniruddha Alek    schedule 23.09.2017
comment
Я хотел бы узнать, как управлять Webdriver.io в определенном порядке от новичков, которые мало что знают о Promise. Хотя вышеупомянутое работает на Test runner, таком как wdio testrunner, но я не пробовал. Другие варианты: async / await или вложенные обещанные вызовы.   -  person Effectura    schedule 27.09.2017
comment
По этой ссылке: github.com/webdriverio/webdriverio/issues/2312   -  person Effectura    schedule 27.09.2017


Ответы (1)


У меня есть еще 2 варианта для цикла синхронизации

https://www.npmjs.com/package/serial-loop

или вы можете создать свой собственный цикл, как это

function testonly() {
//.. do some stuff
// when done make again 
testonly()

// when you finish with your stuff you can start a new function as example after()
if(test == 'test') {
after() 
}

}

function after() {
//..    
}

Или вы можете использовать метод обратного вызова. Надеюсь, это было то, что вы искали. Конечно, вы можете использовать в этих циклах материал webdriver.io!

person t33n    schedule 23.09.2017