Помогите правильно перенести в код.



  • Решил попробовать в код перенести несколько действий, получилось, что цикл не дожидается выполнения каждого действия, а сразу за секунду выводит все log(i), а затем в фоне продолжает выполняться. Как это можно исправить?

    for (var i = 0; i < [[TEST_WORDS]].length; i++) {
        log(i);
        // Ввод текста
        _SELECTOR = "\u003eXPATH\u003e //input[@placeholder=\u0027Search\u0027]";
        wait_element_visible(_SELECTOR)!
        get_element_selector(_SELECTOR, false).random_point()!
        _if(_result().length > 0, function(){
        move( {} )!
        get_element_selector(_SELECTOR, false).clarify(X,Y)!
        _call(_clarify, {} )!
        mouse(X,Y)!
        page().type(VAR_TEST_WORDS[i],100)!
        })!
    
        // Начать цикл
        _SELECTOR = "\u003eXPATH\u003e //*[contains(@href, \u0022/explore/tags/\u0022)]//span[contains(.,\u0027posts\u0027)]/span";
        wait_element(_SELECTOR)!
        get_element_selector(_SELECTOR, true).length()!
        ELEMENT_LENGTH = _result()
        _do(function(){
            VAR_CYCLE_INDEX = _iterator() - 1
            if(VAR_CYCLE_INDEX >= ELEMENT_LENGTH)_break();
    
            // Получить текст
            _SELECTOR = "\u003eXPATH\u003e //*[contains(@href, \u0022/explore/tags/\u0022)]//span[contains(.,\u0027posts\u0027)]/span\u003eAT\u003e" + VAR_CYCLE_INDEX;
            wait_element(_SELECTOR)!
            get_element_selector(_SELECTOR, false).text()!
            VAR_SAVED_POSTS = _result()
    
            // Получить текст
            _SELECTOR = "\u003eXPATH\u003e //*[contains(@href, \u0022/explore/tags/\u0022)]//span[contains(.,\u0027#\u0027)]\u003eAT\u003e" + VAR_CYCLE_INDEX;
            wait_element(_SELECTOR)!
            get_element_selector(_SELECTOR, false).text()!
            VAR_SAVED_TEXT = _result()
    
            // Записать в массив
            var temp = VAR_SAVED_POSTS.replace(/,/g, "") * 1;
            [[FIN_LIST]][0].push(VAR_SAVED_TEXT);
            [[FIN_LIST]][1].push(temp);
        })!
    
        // Очистить поле
        _SELECTOR = "\u003eXPATH\u003e //input[@placeholder=\u0027Search\u0027]";
        wait_element_visible(_SELECTOR)!
        get_element_selector(_SELECTOR, false).random_point()!
        _if(_result().length > 0, function(){
        move( {} )!
        get_element_selector(_SELECTOR, false).clarify(X,Y)!
        _call(_clarify, {} )!
        mouse(X,Y)!
        page().type("<CONTROL>a<BACK>", 30)!
        })!
    }
    


  • @senerg Вы в обычный цикл запихали асинхронные вызовы. Надо использовать api bas(это можно увидеть в коде)



  • @usertrue said in Помогите правильно перенести в код.:

    это можно увидеть в коде

    Так я из кода и копировал действия.



  • @senerg Ага, а цикл for (var i = 0; i < [[TEST_WORDS]].length; i++) { вы тоже из кода скопировали xD



  • @usertrue , т.е. обычный цикл никак не получится использовать с асинхронными действиями? Нужно обязательно создавать цикл в действиях и использовать его?



  • @senerg никак, так же как и обычный if


Log in to reply