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.

Image of Datadog

Create and maintain end-to-end frontend tests

Learn best practices on creating frontend tests, testing on-premise apps, integrating tests into your CI/CD pipeline, and using Datadog’s testing tunnel.

Download The Guide

Top comments (0)

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Retry later