видимо проблема сейчас после if в двигать мышь и кликнуть на элемент
var data = {fail:false,wait:true};data["scroll"] = "no scroll" == "scroll";data["threshold"] = parseInt(80);data["timeout"] = 5000;data["data"] = "iVBORw0KGgoAAAANSUhEUgAAAMEAAAAeBAMAAABnBGdVAAAALVBMVEUAWv/V5P////+cv/9Chf+Qt/+81P/k7v+Crv/y9/+nxv/5+/9dlv/F2f9zpf8aFseGAAABB0lEQVR4Ae2SsUoDQRCG58ixbHHFXhCsHcHG5kilaJFG5j1EMIepwqFgtYWNbGWEEGGtfQBBzm4LC/MkvoazupWphEkT9msGrvi/m38HMpnMfxg2a5/O0qxVJyDQT2sp5bWoQd32GzbQdAHl7NAqPABCr5+xJ+Rgh3tChhN7OaZO+SvrThfQfr6H9oN3qB5h1MgYanDNvf1pZtABTV6BLn5bWskY+F/JHIc4QSHiZAnFTjSUM5QxxFSfDAXn6WSo5kZoBzKg31JLyrMhtTTw3J6IIYbffBm9bANNH8Ad8UuHmg19NZcx7I75nO7Sta5wn6/Vw4iXOccXI3NLf+B32DDbYMhktphvXodGRgltnEgAAAAASUVORK5CYII=";_wait_image(data)!
_if(typeof _Idle != "undefined", function(){
_Idle.emulate({useGeneral: true, target: _image()})!
})!
_if_else(typeof _Idle != "undefined" && _Idle.additionalEmulationEnabled(), function(){
_Idle.moveAndClickOn(_image(),{holdCtrl: false, clickType: "left", wait: false, moveSettings: {} })!
}, function(){
_image().random_point()!
_if(_result().length > 0, function(){
move( {} )!
_image().clarify(X,Y)!
_call(_clarify, {} )!
mouse(X,Y)!
})!
})!
Не проходит http-запрос на Google внутри nodejs в BAS. В чем причина?
-
Тестирую отправление http-запросов через nodejs в BAS .
Как будто бы кубик nodejs не может выйти в интернет, что оч странно! (см лог)
Вывод в консоль завершается , И соответственно работа nodejs-кубика останавливается на этой последней строке лога (полый лог смотрите ниже):[Событие] "socket": Сокет назначен запросу.Полный лог работы nodejs кубика:
[145441036] [12:46:17] Поток №1 : [Шаг 1] Скрипт запущен. Подключаем модуль https. [145441036] [12:46:17] Поток №1 : [Шаг 2] Создан объект с опциями для запроса. [145441036] [12:46:17] Поток №1 : [Шаг 3] Объект запроса успешно создан. [145441036] [12:46:17] Поток №1 : [Шаг 4] Добавляем обработчики событий к запросу... [145441036] [12:46:17] Поток №1 : [Шаг 5] Обработчики событий добавлены. [145441036] [12:46:17] Поток №1 : ... ... [145441036] [12:46:17] Поток №1 : [Шаг 6] Команда req.end() вызвана. Скрипт теперь ожидает ответа от сети... [145441036] [12:46:17] Поток №1 : [Событие] "socket": Сокет назначен запросу.nodejs код:
// === ФУНДАМЕНТАЛЬНЫЙ ТЕСТ СЕТИ 2.0 (Node JS / BAS) === const https = require('https'); async function main() { console.log('[Шаг 1] Скрипт запущен. Подключаем модуль https.'); const options = { hostname: 'www.google.com', port: 443, path: '/', method: 'GET', headers: { 'User-Agent': 'BAS‑Connectivity‑Test/1.0' }, timeout: 20_000 // 20 секунд }; console.log('[Шаг 2] Создан объект с опциями для запроса.'); // ------- КРИТИЧЕСКО: BAS должен подождать этот Promise ------- await new Promise((resolve, reject) => { let req; try { req = https.request(options, (res) => { console.log('[SUCCESS] Получен ответ от сервера!'); console.log('Статус ответа: ' + res.statusCode); res.on('data', (chunk) => console.log(`[data] Получено ${chunk.length} байт.`) ); res.on('end', () => { console.log('[end] Ответ полностью получен. Тест УСПЕШЕН.'); resolve(); }); }); console.log('[Шаг 3] Объект запроса успешно создан.'); } catch (e) { console.error('[FATAL] Не удалось создать запрос: ' + e.message); reject(e); return; } // ----- Диагностические события запроса ----- req.on('socket', (socket) => { console.log('[socket] Сокет назначен.'); socket.on('lookup', (err, address, family, host) => { if (err) { console.error(`[lookup] DNS‑ошибка для ${host}: ${err.message}`); } else { console.log(`[lookup] ${host} → ${address} (IPv${family})`); } }); socket.on('connect', () => console.log('[connect] TCP‑соединение установлено.')); socket.on('secureConnect', () => console.log('[secureConnect] TLS‑рукопожатие завершено.')); socket.on('error', (e) => console.error('[socket‑error] ' + e.message)); }); req.on('response', () => console.log('[response] Сервер начал отправку данных.')); req.on('timeout', () => { console.error('[timeout] 20 секунд истекли — уничтожаем запрос.'); req.destroy(new Error('TIMEOUT')); }); req.on('error', (e) => { console.error('[error] ' + e.message); reject(e); }); req.on('close', () => console.log('[close] Соединение закрыто.'));