
Aloísio Vítor
Image Processing Expert

Agen penjelajah web yang didukung AI sedang mengubah cara kita berinteraksi dengan internet. Mereka dapat menavigasi halaman, mengisi formulir, mengekstrak data, dan menyelesaikan alur kerja multi-langkah — semua dari instruksi teks sederhana. Tapi ada satu hambatan yang menghentikan setiap agen: CAPTCHA.
OpenBrowser adalah kerangka kerja penjelajahan web otomatis yang memberikan kontrol langsung ke peramban nyata kepada model AI seperti GPT-4o, Claude, dan Gemini. Sangat kuat, tetapi saat menghadapi halaman yang dilindungi CAPTCHA, agen akan berhenti.
CapSolver menghilangkan masalah ini secara keseluruhan. Dengan memuat ekstensi CapSolver Chrome ke dalam profil peluncuran OpenBrowser, CAPTCHA dideteksi dan diselesaikan secara otomatis di latar belakang — tanpa perlu pemrograman API, tanpa kode injeksi token, dan tanpa perubahan pada logika agen Anda.
Bagian terbaiknya? Agen AI Anda tidak pernah perlu tahu bahwa CAPTCHA ada. Ekstensi menangani deteksi, penyelesaian, dan injeksi token di tingkat peramban. Ketika agen mengklik Submit, CAPTCHA sudah terselesaikan.
OpenBrowser adalah kerangka kerja penjelajahan web otomatis yang dibangun dengan TypeScript dan Playwright. Ini memberikan kontrol langsung, terisolasi, ke peramban Chromium nyata kepada model bahasa besar — mengubah setiap LLM menjadi agen yang mampu menjelajah web.
OpenBrowser memberikan mata dan tangan kepada model AI di web. Tapi CAPTCHA tetap menjadi titik buta. Agen dapat melihat halaman, membaca bidang formulir, dan mengklik tombol — tapi tidak dapat menyelesaikan tantangan reCAPTCHA atau widget Turnstile. Itulah saat CapSolver masuk.
CapSolver adalah layanan penyelesaian CAPTCHA terkemuka yang menyediakan solusi berbasis AI untuk melewati berbagai tantangan CAPTCHA. Dengan dukungan untuk berbagai jenis CAPTCHA dan respons cepat, CapSolver terintegrasi secara mulus ke dalam alur kerja otomatis.
Kebanyakan integrasi penyelesaian CAPTCHA membutuhkan Anda menulis kode — membuat panggilan API, memantau hasil, menyisipkan token ke bidang formulir tersembunyi. Itu cara kerjanya dengan alat seperti Crawlee, Puppeteer, atau Playwright.
OpenBrowser + CapSolver berbeda secara fundamental:
| Tradisional (Berdasarkan Kode) | OpenBrowser (Berdasarkan Ekstensi) |
|---|---|
Tulis kelas CapSolverService |
Tambahkan ekstensi ditambah satu argumen Chrome allowlist eksplisit |
Panggil createTask() / getTaskResult() |
Ekstensi menangani seluruh siklus hidup |
Sisipkan token melalui page.$eval() |
Token disisipkan secara otomatis di tingkat peramban |
| Tangani kesalahan, ulang, timeout dalam kode | Ekstensi melakukan ulang secara internal |
| Kode berbeda untuk setiap jenis CAPTCHA | Berfungsi untuk semua jenis secara otomatis |
| Terikat erat dengan logika agen Anda | Tidak ada keterikatan — agen tidak tahu CAPTCHA ada |
Insight utama: Ekstensi CapSolver Chrome berjalan di dalam konteks browser Playwright OpenBrowser. Ketika agen mengunjungi halaman dengan CAPTCHA, ekstensi mendeteksinya, menyelesaikannya di latar belakang, dan menyisipkan token — semua sebelum agen mencoba mengirim formulir.
Anda hanya perlu memberinya waktu. Alih-alih menulis kode penanganan CAPTCHA, tambahkan jeda singkat ke alur agen Anda:
// Agen menunggu, lalu mengirim — CapSolver menangani sisanya
await page.waitForTimeout(30_000);
await page.click('button[type="submit"]');
Itu saja. Tidak ada logika CAPTCHA. Tidak ada panggilan API. Tidak ada injeksi token.
Sebelum mengatur integrasi, pastikan Anda memiliki:
npm install openbrowser atau diklon dari GitHub)Google Chrome 137+ (dirilis pertengahan 2025) secara diam-diam menghapus dukungan untuk
--load-extensiondalam build yang diberi merek. Ini berarti ekstensi Chrome tidak dapat dimuat dalam sesi otomatis menggunakan Google Chrome standar. Tidak ada kesalahan — flag hanya diabaikan.
Ini memengaruhi Google Chrome dan Microsoft Edge. Anda harus menggunakan salah satu alternatif berikut:
| Browser | Pemuatan Ekstensi | Direkomendasikan? |
|---|---|---|
| Google Chrome 137+ | Tidak didukung | Tidak |
| Microsoft Edge | Tidak didukung | Tidak |
| Chrome untuk Pengujian | Didukung | Ya |
| Chromium (standalon) | Didukung | Ya |
| Chromium yang dibundel Playwright | Didukung | Ya |
Cara menginstal Chrome untuk Pengujian:
# Opsi 1: Melalui Playwright (direkomendasikan — OpenBrowser sudah menggunakan Playwright)
npx playwright install chromium
# Biner akan berada di jalur seperti:
# ~/.cache/ms-playwright/chromium-XXXX/chrome-linux64/chrome (Linux)
# ~/Library/Caches/ms-playwright/chromium-XXXX/chrome-mac/Chromium.app/Contents/MacOS/Chromium (macOS)
# Opsi 2: Melalui unduhan langsung Chrome untuk Pengujian
# Kunjungi: https://googlechromelabs.github.io/chrome-for-testing/
# Unduh versi yang sesuai dengan OS Anda
Setelah instalasi, catat jalur lengkap ke biner — Anda akan membutuhkannya untuk profil peluncuran.
Jika belum, pasang OpenBrowser:
npm install openbrowser
Atau klon repositori untuk fitur terbaru:
git clone https://github.com/ntegrals/openbrowser.git
cd openbrowser
npm install
Unduh ekstensi CapSolver Chrome dan ekstrak ke direktori yang diketahui:
CapSolver.Browser.Extension-chrome-vX.X.X.zip terbarumkdir -p ~/.openbrowser/capsolver-extension
unzip CapSolver.Browser.Extension-chrome-v*.zip -d ~/.openbrowser/capsolver-extension/
ls ~/.openbrowser/capsolver-extension/manifest.json
Anda harus melihat manifest.json — ini memastikan ekstensi berada di tempat yang benar.
Buka file konfigurasi ekstensi di ~/.openbrowser/capsolver-extension/assets/config.js dan ganti nilai apiKey dengan kunci Anda:
export const defaultConfig = {
apiKey: 'CAP-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', // ganti dengan kunci Anda
useCapsolver: true,
// ... sisa konfigurasi
};
Anda dapat mendapatkan kunci API dari dashboard CapSolver Anda.
Ini adalah bagian di mana OpenBrowser bersinar. Gunakan pembangun LaunchProfile untuk memuat ekstensi CapSolver ke dalam browser:
import { LaunchProfile, OpenBrowser } from 'openbrowser';
const profile = new LaunchProfile()
.addExtension('/home/user/.openbrowser/capsolver-extension')
.extraArgs('--disable-extensions-except=/home/user/.openbrowser/capsolver-extension')
.headless(false) // Wajib — ekstensi MV3 membutuhkan browser yang tidak headless
.stealthMode(); // Mengurangi fingerprint deteksi bot
Mengapa
headless(false)? Ekstensi MV3 (Manifest V3) Chrome, termasuk CapSolver, membutuhkan konteks browser yang tidak headless. Layanan worker yang menggerakkan ekstensi tidak dimuat dalam mode headless. Di server tanpa layar, gunakan Xvfb (lihat Langkah 7).Penting: Jika Anda melewati bendera Chrome kustom di mana pun dalam setup Anda, jangan sertakan
--disable-background-networking. Layanan worker ekstensi CapSolver membutuhkan akses jaringan keluar.
import { LaunchProfile, OpenBrowser } from 'openbrowser';
const profile = new LaunchProfile()
.addExtension('/home/user/.openbrowser/capsolver-extension')
.extraArgs('--disable-extensions-except=/home/user/.openbrowser/capsolver-extension')
.headless(false)
.stealthMode();
const browser = await OpenBrowser.launch(profile);
// Navigasi ke halaman yang dilindungi CAPTCHA
await browser.goto('https://example.com/protected-form');
// Tunggu CapSolver mendeteksi dan menyelesaikan CAPTCHA
await browser.page.waitForTimeout(30_000);
// Kirim formulir — token CAPTCHA sudah disisipkan
await browser.page.click('button[type="submit"]');
// Baca halaman tujuan atau elemen konfirmasi
const result = await browser.page.textContent('body');
console.log(result); // contoh: teks konfirmasi yang dikembalikan situs
await browser.close();
Kekuatan nyata OpenBrowser adalah membiarkan model AI mengontrol browser. Berikut cara menghubungkannya dengan CapSolver:
import { LaunchProfile, OpenBrowser, Agent } from 'openbrowser';
const profile = new LaunchProfile()
.addExtension('/home/user/.openbrowser/capsolver-extension')
.extraArgs('--disable-extensions-except=/home/user/.openbrowser/capsolver-extension')
.headless(false)
.stealthMode();
const browser = await OpenBrowser.launch(profile);
// Buat agen dengan model yang Anda pilih
const agent = new Agent({
browser,
model: 'gpt-4o', // atau 'claude-sonnet-4-20250514', 'gemini-pro', dll.
});
// Beri agen tugas — tidak perlu menyebutkan CAPTCHA
await agent.run(`
Kunjungi https://example.com/contact,
isi formulir kontak dengan:
Nama: "Jane Smith"
Email: "jane@example.com"
Pesan: "Saya ingin belajar lebih banyak tentang rencana perusahaan Anda."
Tunggu 30 detik agar halaman selesai dimuat,
lalu klik Kirim.
Beri tahu saya pesan konfirmasi yang muncul.
`);
await browser.close();
Perhatikan bahwa instruksi agen menyebutkan "tunggu 30 detik agar halaman selesai dimuat" — frasa alami yang memberi CapSolver waktu untuk menyelesaikan CAPTCHA di halaman tanpa AI pernah tahu tentangnya.
Karena ekstensi MV3 membutuhkan browser yang tidak headless, Anda perlu layar virtual di server tanpa monitor:
# Instal Xvfb
sudo apt-get install -y xvfb
# Mulai layar virtual
Xvfb :99 -screen 0 1280x720x24 &
# Atur DISPLAY sebelum menjalankan skrip Anda
export DISPLAY=:99
Kemudian jalankan skrip OpenBrowser Anda seperti biasa. Browser akan merender ke layar virtual, dan ekstensi akan dimuat dengan benar.
Untuk yang tertarik secara teknis, berikut alur lengkap saat CapSolver dimuat ke dalam OpenBrowser:
Skrip Anda / Agen AI
──────────────────────────────────────────────────
LaunchProfile OpenBrowser
.addExtension(path) ──► Menambahkan flag --load-extension
.extraArgs(...) Menambahkan --disable-extensions-except
.headless(false) ke argumen peluncuran Playwright
.stealthMode() │
▼
Playwright menjalankan Chromium
┌───────────────────────────────┐
│ Proses Chromium │
│ │
│ 1. Layanan ekstensi aktif │
│ (background.js) │
│ │
│ 2. Skrip konten diinjeksikan │
│ ke setiap halaman │
└───────────────────────────────┘
│
▼
Agen mengunjungi URL tujuan
┌───────────────────────────────┐
│ Halaman dengan widget CAPTCHA │
│ │
│ Ekstensi CapSolver: │
│ 1. Skrip konten mendeteksi │
│ CAPTCHA di halaman │
│ 2. Layanan worker memanggil │
│ API CapSolver │
│ 3. Token diterima │
│ 4. Token disisipkan ke │
│ bidang formulir tersembunyi│
└───────────────────────────────┘
│
▼
Agen menunggu (30-60 detik)...
│
▼
Agen mengklik Kirim
│
▼
Formulir dikirim DENGAN token valid
│
▼
Halaman konfirmasi spesifik situs
addExtension() Bekerja.addExtension(path) menghasilkan --load-extension=/path/to/extension. Untuk integrasi ini, Anda juga perlu mengizinkan ekstensi yang tidak dikemas secara eksplisit dengan .extraArgs('--disable-extensions-except=/path/to/extension'). Ini adalah mekanisme yang sama untuk ekstensi pengembang Chrome yang diungkapkan oleh OpenBrowser melalui profil peluncurannya.
--load-extension=/path/to/capsolver-extension--disable-extensions-except=/path/to/capsolver-extensionJika memuat ekstensi Chrome bermasalah — atau Anda ingin kontrol eksplisit atas alur penyelesaian CAPTCHA — Anda dapat menggunakan API CapSolver REST secara langsung dengan instance OpenBrowser Playwright.
import { LaunchProfile, OpenBrowser } from 'openbrowser';
const CAPSOLVER_API_KEY = process.env.CAPSOLVER_API_KEY!;
async function solveCaptchaViaAPI(
pageUrl: string,
siteKey: string
): Promise<string> {
const createRes = await fetch("https://api.capsolver.com/createTask", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
clientKey: CAPSOLVER_API_KEY,
task: {
type: "ReCaptchaV2TaskProxyLess",
websiteURL: pageUrl,
websiteKey: siteKey,
},
}),
});
const { taskId, errorDescription } = await createRes.json();
if (!taskId) throw new Error(`createTask gagal: ${errorDescription}`);
for (let i = 0; i < 40; i++) {
await new Promise((r) => setTimeout(r, 3000));
const resultRes = await fetch("https://api.capsolver.com/getTaskResult", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ clientKey: CAPSOLVER_API_KEY, taskId }),
});
const result = await resultRes.json();
if (result.status === "ready") {
return result.solution.gRecaptchaResponse;
}
}
throw new Error("Waktu habis");
}
// Mulai tanpa ekstensi — tidak diperlukan bendera Chrome khusus
const profile = new LaunchProfile()
.headless(false)
.stealthMode();
const browser = await OpenBrowser.launch(profile);
const page = browser.page;
await page.goto("https://example.com/protected-page");
// Deteksi sitekey
const siteKey = await page.evaluate(() => {
const el = document.querySelector(".g-recaptcha[data-sitekey]");
return el?.getAttribute("data-sitekey") ?? "";
});
console.log("Sitekey:", siteKey);
// Selesaikan via API
const token = await solveCaptchaViaAPI(page.url(), siteKey);
console.log("Token diterima, panjang:", token.length);
// Sisipkan token
await page.evaluate((t) => {
const textarea = document.querySelector(
'textarea[name="g-recaptcha-response"]'
) as HTMLTextAreaElement;
if (textarea) textarea.value = t;
}, token);
// Kirim
await page.click("#recaptcha-demo-submit");
await page.waitForLoadState("networkidle");
const body = await page.textContent("body");
console.log(
body?.includes("Verification Success")
? "CAPTCHA diselesaikan via API!"
: body?.slice(0, 200)
);
await browser.close();
| Ekstensi | API | |
|---|---|---|
| Pengaturan | Konfigurasi ekstensi + bendera Chrome | Hanya kunci API |
| Versi Chrome | Membutuhkan Chrome untuk Pengujian (catatan versi 137+) | Berjalan dengan semua Chrome |
| Deteksi | Otomatis (skrip konten) | Manual (query DOM) |
| Penyisipan token | Otomatis | Manual (evaluasi JS) |
| Headless | Membutuhkan mode berbasis tampilan (MV3) | Berjalan di headless juga |
| Terbaik untuk | Otomatisasi berkelanjutan | Penyelesaian satu kali, lingkungan headless |
Gejala: Browser berjalan tetapi CAPTCHA tidak diselesaikan. Tidak ada entri terkait ekstensi di chrome://extensions.
Penyebab: Anda menggunakan Google Chrome bermerek versi 137+ yang secara diam-diam mengabaikan --load-extension.
Perbaikan: Beralih ke Chrome for Testing atau Chromium yang dibundel Playwright. Jika Anda perlu menentukan eksekusi kustom:
const profile = new LaunchProfile()
.addExtension('/path/to/capsolver-extension')
.extraArgs('--disable-extensions-except=/path/to/capsolver-extension')
.executablePath('/path/to/chrome-for-testing/chrome')
.headless(false)
.stealthMode();
Verifikasi versi Chrome Anda:
/path/to/your/chrome --version
# Chrome for Testing: "Chromium 143.0.7499.4"
# Chrome bermerek: "Google Chrome 143.0.7499.109"
Gejala: Ekstensi dimuat di mode berbasis tampilan tetapi tidak di mode headless.
Penyebab: Ekstensi MV3 Chrome (Manifest V3) membutuhkan konteks browser berbasis tampilan. Worker layanan tidak diinisialisasi di mode --headless atau --headless=new.
Perbaikan: Selalu gunakan .headless(false) dalam LaunchProfile Anda. Di server, gunakan Xvfb untuk menyediakan layar virtual:
Xvfb :99 -screen 0 1280x720x24 &
export DISPLAY=:99
Kemungkinan penyebab:
assets/config.js di direktori ekstensi Anda--disable-background-networking ke argumen Chrome, hapus. Ekstensi membutuhkan akses jaringan untuk memanggil API CapSolver.Gejala: Halaman mendeteksi browser sebagai otomatis meskipun .stealthMode() diaktifkan.
Perbaikan: Pastikan Anda menggunakan Chromium yang dibundel Playwright atau Chrome for Testing. Beberapa patch stealth bergantung pada versi Chromium. Pastikan juga Anda tidak mengirim bendera Chrome yang bertentangan yang mengganti pengaturan stealth.
Waktu tunggu yang lebih lama selalu lebih aman. CAPTCHA biasanya diselesaikan dalam 5-20 detik, tetapi latensi jaringan, tantangan kompleks, atau ulangan dapat menambah waktu. 30-60 detik adalah titik optimal.
| Jenis CAPTCHA | Waktu Penyelesaian Rata-rata | Waktu Tunggu yang Direkomendasikan |
|---|---|---|
| reCAPTCHA v2 (checkbox) | 5-15 detik | 30-60 detik |
| reCAPTCHA v2 (invisible) | 5-15 detik | 30 detik |
| reCAPTCHA v3 | 3-10 detik | 20-30 detik |
| Cloudflare Turnstile | 3-10 detik | 20-30 detik |
Ketika memberikan instruksi ke agen AI melalui OpenBrowser, gunakan frasa alami dan hindari menyebut CAPTCHA:
Baik:
"Pergi ke halaman, tunggu sekitar satu menit untuk semua hal dimuat, lalu kirim formulir."
Hindari:
"Tunggu CAPTCHA diselesaikan, lalu kirim."
Frasing alami bekerja lebih baik dengan LLM dan menghindari penolakan keamanan. Agen AI tidak perlu tahu tentang CAPTCHA — ekstensi menangani semuanya secara tersembunyi.
Untuk situs yang menggunakan reCAPTCHA v3 atau reCAPTCHA v2 tersembunyi, pastikan mode token diaktifkan dalam konfigurasi ekstensi (assets/config.js). Mode token memastikan ekstensi menyelesaikan tantangan dan menyisipkan token tanpa memerlukan interaksi visual.
Setiap penyelesaian CAPTCHA memakan kredit. Periksa saldo Anda di capsolver.com/dashboard secara berkala untuk menghindari gangguan.
stealthMode() untuk ProduksiSelalu aktifkan .stealthMode() dalam LaunchProfile Anda untuk penggunaan produksi. Teknik ini menerapkan teknik penghindaran fingerprint yang mengurangi kemungkinan browser dideteksi sebagai otomatis — yang pada gilirannya mengurangi kemungkinan menghadapi CAPTCHA agresif.
const profile = new LaunchProfile()
.addExtension('/path/to/capsolver-extension')
.extraArgs('--disable-extensions-except=/path/to/capsolver-extension')
.headless(false)
.stealthMode(); // Aktifkan selalu di produksi
DISPLAY untuk Server HeadlessEkstensi Chrome membutuhkan layar, bahkan di server headless. Gunakan Xvfb untuk membuat layar virtual:
# Instal Xvfb
sudo apt-get install -y xvfb
# Mulai layar virtual
Xvfb :99 -screen 0 1280x720x24 &
# Atur DISPLAY untuk skrip OpenBrowser Anda
export DISPLAY=:99
Integrasi OpenBrowser + CapSolver mewakili pendekatan paling bersih untuk menyelesaikan CAPTCHA dalam otomatisasi browser AI. Alih-alih menulis logika deteksi CAPTCHA, mengelola panggilan API, memantau hasil, dan menyisipkan token — Anda hanya perlu:
.addExtension('/path/to/capsolver-extension') ditambah .extraArgs('--disable-extensions-except=/path/to/capsolver-extension')headless(false) dan gunakan Xvfb di server--disable-background-networkingTidak ada perubahan pada logika agen Anda. Tidak ada kode khusus CAPTCHA. Tidak ada ketergantungan antara model AI Anda dan layanan penyelesaian. Ekstensi beroperasi di tingkat browser, sepenuhnya tersembunyi bagi agen.
Ini yang terlihat ketika penyelesaian CAPTCHA benar-benar otomatis: tersembunyi, tanpa kode, dan tidak tergantung model.
Siap memulai? Daftar di CapSolver dan gunakan kode bonus OPENBROWSER untuk bonus 6% tambahan pada recharge pertama Anda!
Tidak. Ekstensi CapSolver bekerja sepenuhnya di tingkat browser — agen AI Anda (GPT-4o, Claude, Gemini, dll.) tidak perlu tahu tentang CAPTCHA. Cukup sertakan waktu tunggu yang wajar dalam instruksi agen Anda (misalnya, "tunggu 30 detik untuk halaman sepenuhnya dimuat") untuk memberi waktu ekstensi menyelesaikan tantangan apa pun.
Google Chrome versi 137+ (dirilis pertengahan 2025) menghapus dukungan untuk bendera baris perintah --load-extension dalam versi bermerek. Ini berarti ekstensi Chrome tidak dapat dimuat dalam sesi otomatis. Anda membutuhkan Chrome for Testing atau Chromium standalone, yang masih mendukung bendera ini. Karena OpenBrowser menggunakan Playwright di bawahnya, opsi terbaik adalah npx playwright install chromium.
Tidak langsung. Ekstensi MV3 Chrome (Manifest V3) membutuhkan konteks browser berbasis tampilan — worker layanan tidak diinisialisasi di mode headless. Di server tanpa layar, gunakan Xvfb untuk membuat layar virtual (Xvfb :99 & dan export DISPLAY=:99). Browser merender ke layar virtual, dan ekstensi dimuat normal.
CapSolver mendukung reCAPTCHA v2 (checkbox dan tersembunyi), reCAPTCHA v3, reCAPTCHA Enterprise, Cloudflare Turnstile, Cloudflare 5-second Challenge, AWS WAF CAPTCHA, dan lainnya. Ekstensi Chrome secara otomatis mendeteksi jenis CAPTCHA dan menyelesaikannya sesuai.
CapSolver menawarkan harga kompetitif berdasarkan jenis CAPTCHA dan volume. Kunjungi capsolver.com untuk harga saat ini. Gunakan kode bonus OPENBROWSER untuk bonus 6% pada recharge pertama Anda.
Ya. Karena CapSolver beroperasi di tingkat browser melalui ekstensi Chrome, ini berjalan sama, terlepas dari model AI yang menggerakkan agen OpenBrowser Anda — GPT-4o, Claude, Gemini, atau model lain yang didukung. Model tidak pernah berinteraksi dengan proses penyelesaian CAPTCHA.
Ketahui bagaimana Infrastruktur Otomatisasi AI yang didukung LLM mengubah pengenalan CAPTCHA, meningkatkan efisiensi proses bisnis dan mengurangi intervensi manual. Optimalkan operasi otomatis Anda dengan solusi verifikasi canggih.

Pelajari cara meningkatkan pengumpulan data untuk pelatihan LLM dengan menyelesaikan CAPTCHA dalam jumlah besar. Temukan strategi otomatis untuk membangun dataset berkualitas tinggi untuk model AI.
