|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms)); async function automatizar() { const procesados = new WeakSet(); while (true) { // Localizar botones de invitación mediante aria-label // y comprobar también el texto interno "Conectar". const botones = Array.from( document.querySelectorAll('button[aria-label]') ); let conectados = 0; for (const btn of botones) { const ariaLabel = ( btn.getAttribute("aria-label") || "" ).toLowerCase(); const texto = ( btn.innerText || "" ).trim().toLowerCase(); // Identificar botones de conexión de LinkedIn. const esInvitacion = ariaLabel.includes("invita") && ariaLabel.includes("conectar"); const esConectar = texto === "conectar" && ( ariaLabel.includes("conectar") || btn.querySelector('svg[id="connect-small"]') ); if (!esInvitacion && !esConectar) continue; // Evitar procesar el mismo botón dos veces. if (procesados.has(btn)) continue; // Evitar botones deshabilitados. if (btn.disabled || btn.getAttribute("aria-disabled") === "true") { continue; } procesados.add(btn); console.log("Enviando invitación:", ariaLabel || texto); btn.click(); conectados++; // Pausa entre invitaciones. await sleep(1200); } console.log(`Invitaciones procesadas en esta ronda: ${conectados}`); await sleep(2000); // Buscar el botón "Cargar más". const cargarMasBtn = Array.from( document.querySelectorAll("button") ).find(btn => { const texto = (btn.innerText || "").trim().toLowerCase(); return texto.includes("cargar más") || texto.includes("ver más resultados"); }); if (!cargarMasBtn) { console.log("No se encontró el botón «Cargar más». Fin."); break; } if ( cargarMasBtn.disabled || cargarMasBtn.getAttribute("aria-disabled") === "true" ) { console.log("El botón para cargar más está deshabilitado. Fin."); break; } cargarMasBtn.click(); console.log("Click en «Cargar más»."); // Esperar a que LinkedIn cargue los nuevos resultados. await sleep(4000); } } automatizar(); |