'use strict'; const WS_URL = 'ws://127.0.0.1:18792/cdp'; const TOKEN = '0537d84a67f2e43b525964bb43d93f6dfae1ec1b50946455'; const TARGET_URL = 'https://diaonline.supermercadosdia.com.ar/medios-de-pago-y-promociones'; const WS = require('/usr/lib/node_modules/openclaw/node_modules/ws').WebSocket || require('/usr/lib/node_modules/openclaw/node_modules/ws'); const ws = new WS(WS_URL, { headers: { 'x-openclaw-relay-token': TOKEN } }); let _id=1, sessionId=null, started=false; const cbs=new Map(); function send(method,params,cb){const id=_id++;const m={id,method,params:params||{}};if(sessionId)m.sessionId=sessionId;if(cb)cbs.set(id,cb);ws.send(JSON.stringify(m));} function evalS(expr,cb){send('Runtime.evaluate',{expression:expr,returnByValue:true},(r)=>cb(r&&r.result&&r.result.value));} ws.on('open',()=>{ send('Target.getTargets',{},(res)=>{ const t=(res.targetInfos||[]).filter(t=>t.type==='page')[0]; console.log('Target:', t&&t.url); send('Target.attachToTarget',{targetId:t.targetId,flatten:true},(r2)=>{ sessionId=r2.sessionId; send('Page.enable'); send('Page.navigate',{url:TARGET_URL}); }); }); }); ws.on('message',raw=>{ const msg=JSON.parse(raw); if(msg.id&&cbs.has(msg.id)){const cb=cbs.get(msg.id);cbs.delete(msg.id);cb(msg.result||{});return;} if(!msg.method)return; if(msg.method==='Page.frameNavigated'){ const url=msg.params&&msg.params.frame&&msg.params.frame.url; console.log('frameNavigated:', url&&url.slice(0,80)); if(url&&url.includes('medios-de-pago')&&!started){ started=true; console.log('Waiting 10s...'); setTimeout(debug,10000); } } }); function debug(){ evalS(`(function(){ var title=document.title; var bodyLen=(document.body&&document.body.innerText||'').length; var items=document.querySelectorAll('[class*="list-by-days__item"]').length; var btns=document.querySelectorAll('[class*="bank-modal__button"]').length; var allBtns=document.querySelectorAll('button').length; var verLegales=[].filter.call(document.querySelectorAll('button'),function(b){return /ver legales/i.test(b.textContent);}).length; return JSON.stringify({title,bodyLen,items,btns,allBtns,verLegales}); })()`, val=>{ console.log('DOM check:', val); evalS(`(function(){ var els=document.querySelectorAll('[class*="diaio"]'); var classes=[]; for(var i=0;i{ console.log('diaio classes:', val2); ws.close(); }); }); } ws.on('error',e=>console.error('WS err:',e.message)); ws.on('close',()=>process.exit(0)); setTimeout(()=>{console.log('Timeout');ws.close();},90000);