DEV Community

Muhammad Mahib Arib
Muhammad Mahib Arib

Posted on

2

Mengirim Pesan WhatsApp dengan JavaScript

Pada kesempatan kali ini saya akan membagikan cara mengirimkan pesan WhatsApp secara otomatis menggunakan library Puppeteer.

Apa itu Puppeteer? Puppeteer adalah sebuah library Node.js yang menyediakan API tingkat tinggi untuk mengontrol browser Chrome atau Chromium secara programatik. Puppeteer digunakan untuk mengotomatisasi tugas-tugas di browser, seperti Web Scraping, Pengujian Web, Mengambil Screenshot, Menghasilkan PDF, dan Interaksi dengan Halaman. Puppeteer sangat berguna untuk pengembang web dan penguji karena memungkinkan otomatisasi tugas yang biasanya memerlukan interaksi manual dengan browser.

Silahkan buat folder untuk menyimpan project latihan kali ini, kemudian buat file index.js kemudian jalankan npm init setelah itu jalankan npm i puppeteer.

Tulis kode dibawah ini pada index.js.

import puppeteer from 'puppeteer';

const scrape = async (url) => {
  const browser = await puppeteer.launch({ headless: false });
  const page = await browser.newPage();
  await page.goto(url);
};

scrape("https://web.whatsapp.com");

Enter fullscreen mode Exit fullscreen mode

Buka WhatsApp Web kemudian lakukan inspect element dan pilih nama kontak yang ingin dikirimi pesan. Sebagai contoh saya akan mengirim pesan dengan nama kontak yaitu Asep.

await page.waitForSelector("span[title='Asep']");
const target = await page.$("span[title='Asep']");
await target.click();
Enter fullscreen mode Exit fullscreen mode

Kemudian copy selector pada kolom tempat menulis pesan pada chat.

const inp = await page.$(
    "#main > footer > div._3SvgF._1mHgA.copyable-area > div.DuUXI > div > div._1awRl.copyable-text.selectable-text"
);
Enter fullscreen mode Exit fullscreen mode

Kemudian tulis pesan yang ingin dikirim, Anda juga bisa melakukan pengulangan pada pesan yang dikirim.

for (let i = 0; i < 100; i++) { // lakukan pengulangan sesuai keinginan
  await inp.type("halo!"); // isi pesan
  await page.keyboard.press("Enter");
}
await browser.close();
Enter fullscreen mode Exit fullscreen mode

Sehingga keseluruhan kode menjadi seperti ini.

import puppeteer from 'puppeteer';

const scrape = async (url) => {
  const browser = await puppeteer.launch({ headless: false });
  const page = await browser.newPage();
  await page.goto(url);
  await page.waitForSelector("span[title='Asep']");
  const target = await page.$("span[title='Asep']");
  await target.click();
  const inp = await page.$(
    "#main > footer > div._3SvgF._1mHgA.copyable-area > div.DuUXI > div > div._1awRl.copyable-text.selectable-text"
  );

  for (let i = 0; i < 100; i++) {
    await inp.type("halo!");
    await page.keyboard.press("Enter");
  }
  await browser.close();
};

scrape("https://web.whatsapp.com");

Enter fullscreen mode Exit fullscreen mode

Jalankan kode dengan perintah node index.js.

SurveyJS custom survey software

Build Your Own Forms without Manual Coding

SurveyJS UI libraries let you build a JSON-based form management system that integrates with any backend, giving you full control over your data with no user limits. Includes support for custom question types, skip logic, an integrated CSS editor, PDF export, real-time analytics, and more.

Learn more

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more