async function enviarScript(scriptText) {
const lines = scriptText.split(/[\n\t]+/).map(line => line.trim()).filter(line => line);
const main = document.querySelector("#main");
const textarea = main.querySelector(div[contenteditable="true"]);
if (!textarea) throw new Error("Não há uma conversa aberta ou o seletor mudou.");
for (const line of lines) {
console.log(`Enviando: ${line}`);
textarea.focus();
// Insere o texto simulando digitação real
const data = new DataTransfer();
data.setData('text/plain', line);
textarea.dispatchEvent(new ClipboardEvent('paste', {
clipboardData: data,
bubbles: true
}));
// Pequena pausa para o WhatsApp processar o texto e mostrar o botão de enviar
await new Promise(resolve => setTimeout(resolve, 100));
const sendBtn = main.querySelector(`span[data-testid="send"]`) ||
main.querySelector(`span[data-icon="send"]`) ||
main.querySelector(`button[aria-label="Enviar"]`);
if (sendBtn) {
sendBtn.click();
} else {
// Fallback: Tenta apertar Enter se o botão não for achado
textarea.dispatchEvent(new KeyboardEvent('keydown', {
key: 'Enter',
code: 'Enter',
bubbles: true
}));
}
// Delay entre mensagens para não ser bloqueado por spam rápido demais
if (lines.indexOf(line) !== lines.length - 1) {
await new Promise(resolve => setTimeout(resolve, 500));
}
}
return lines.length;
}
// Para rodar, cole a função acima e depois chame ela:
enviarScript(YOUR TEXT HERE)
.then(e => console.log(Sucesso! ${e} mensagens enviadas.))
.catch(console.error);
async function enviarScript(scriptText) {
const lines = scriptText.split(/[\n\t]+/).map(line => line.trim()).filter(line => line);
const main = document.querySelector("#main");
const textarea = main.querySelector(
div[contenteditable="true"]);}
// Para rodar, cole a função acima e depois chame ela:
enviarScript(
YOUR TEXT HERE).then(e => console.log(
Sucesso! ${e} mensagens enviadas.)).catch(console.error);