@agility said in Как правильно создавать и вызывать функции через блоки Выполнить код?:
Например, в первом блоке у меня так:
myfunc = function() {
_if (1, function() { ... })!
return true;
// _return(true); - этот вариант тоже не работает
}
Второй блок если сделать так, то после вызова ф-ции код прерывается, то есть log() не выполняется:
var res = myfunc();
log('...')
А если так, то res всегда null, хотя должен true:
_call_function(myfunc,{})!
var res = _result_function()
Тестовый скрипт: 0_1568630416526_test_cutomfunc.xml
Объявляете функции со всеми действиями
get_ip = function () {
_switch_http_client_main()
http_client_get2("https://fingerprints.bablosoft.com/ip", { method: ("GET"), headers: ("") })!
VAR_SAVED_CONTENT = http_client_encoded_content("auto")
log(VAR_SAVED_CONTENT)
}
query_result = function () {
VAR_NEW_LIST = []
load("https://www.google.com/search?q=site:https://community.bablosoft.com%20%D0%BB%D0%B0%D0%B9%D1%84%D1%85%D0%B0%D0%BA")!
_SELECTOR = " \u003eXPATH\u003e //span[@class=\u0022st\u0022]";
wait_element(_SELECTOR)!
get_element_selector(_SELECTOR, true).length()!
ELEMENT_LENGTH_109692 = _result()
_do(function () {
VAR_CYCLE_INDEX = _iterator() - 1
VAR_FOR_EACH_XPATH = " \u003eXPATH\u003e //span[@class=\u0022st\u0022]"
if (VAR_CYCLE_INDEX >= ELEMENT_LENGTH_109692) _break();
_SELECTOR = VAR_FOR_EACH_XPATH + "\u003eAT\u003e" + VAR_CYCLE_INDEX;
wait_element(_SELECTOR)!
get_element_selector(_SELECTOR, false).text()!
VAR_SAVED_TEXT = _result()
VAR_NEW_LIST.push(VAR_SAVED_TEXT)
})!
delete ELEMENT_LENGTH_109692
VAR_NEW_LIST.forEach(function (item) {
log(item)
});
}
и вызываете их в любом удобном для вас месте
_if (1, function() {
_call(get_ip, null)!
})!
_if (1, function() {
_call(query_result, null)!
})!
Тестовый скрипт