DEV Community

Muhammad Mahib Arib
Muhammad Mahib Arib

Posted on

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.

Top comments (0)