CAPSOLVER
Blog
Cara Mendeteksi CAPTCHA dalam Pengujian Browser Robot Framework

Cara Mendeteksi CAPTCHA dalam Pengujian Browser Robot Framework

Logo of CapSolver

Emma Foster

How to use CapSolver

26-Oct-2026

Ringkasannya

  • Robot Framework dapat memanggil pustaka keyword Python kecil yang menggunakan CapSolver Core SDK resmi untuk menginspeksi halaman CAPTCHA.
  • Contoh ini mengembalikan tipe CAPTCHA yang terdeteksi, URL halaman, dan sitekey ke sebuah pengujian Robot.
  • Jalankan pengujian terhadap halaman pengembangan yang dimiliki sendiri dengan menggunakan kunci uji publik reCAPTCHA milik Google.
  • Keyword membuka dan menutup browser miliknya sendiri; keyword ini tidak menempel pada sesi SeleniumLibrary atau Browser Library.
  • Deteksi mengonfirmasi langkah penemuan input. Ia tidak menyelesaikan CAPTCHA maupun membuktikan bahwa sebuah form produksi menerima hasil dari solver.

Sebuah pengujian browser Robot Framework bisa gagal karena halaman kini menampilkan CAPTCHA alih-alih konten yang diharapkan oleh asersi berikutnya. Menaikkan timeout generik tidak menjelaskan perubahan itu. Pemeriksaan CAPTCHA yang spesifik dapat memberi hasil yang berguna: tipe tantangan dan parameter yang dibutuhkan oleh workflow solver yang telah disetujui.

Robot Framework adalah kerangka kerja open-source untuk acceptance testing dan robotic process automation. Sintaks keyword‑nya memungkinkan tim mengekspresikan pemeriksaan sementara pustaka Python mengimplementasikan operasi dasarnya. Tutorial ini menghubungkan sebuah keyword Python ke CapSolver Core SDK resmi dan memverifikasi bahwa Robot menerima hasil deteksi nyata dari sebuah halaman browser.

Di mana deteksi CAPTCHA berada di dalam pengujian Robot

Deteksi CAPTCHA berada pada checkpoint halaman yang sudah diketahui, sebelum pengujian memperlakukan halaman yang diblokir sebagai respons aplikasi yang normal.

Sebagai contoh, sebuah workflow browser yang diizinkan mengharapkan form pencarian tetapi justru mencapai sebuah tantangan. Pertanyaan pertama yang berguna adalah apakah ada CAPTCHA yang didukung. Hasil pengenalan kemudian dapat menginformasikan langkah berikut yang terkontrol: gunakan integrasi solving yang terdokumentasi, jeda untuk aksi manusia, atau catat kegagalan pengujian yang spesifik.

Ini berbeda dengan memperlakukan setiap elemen yang hilang sebagai CAPTCHA. Halaman juga dapat gagal karena script aplikasinya tidak termuat, routenya berubah, atau selector salah. Jaga deteksi CAPTCHA tetap terpisah dari diagnosis tersebut.

Panduan pengguna Robot Framework mendokumentasikan pustaka pengujian Python dan eksekusi keyword. Pustaka kecil di bawah ini menggunakan titik ekstensi tersebut. Ini adalah contoh integrasi, bukan klaim bahwa Robot Framework dikirim bersama pustaka CapSolver bawaan.

Instal paket dalam satu environment

Instal Robot Framework, Playwright, dan Core SDK dalam environment Python yang sama sehingga test runner dapat mengimpor ketiganya.

Contoh ini menggunakan Python 3.12, Robot Framework 7.5, Playwright 1.64.0, dan capsolver-core 0.1.1. Repositori resmi framework ini adalah sumber untuk latar belakang proyek dan rute instalasi yang didukung.

bash Copy
python -m pip install robotframework==7.5 playwright==1.64.0 capsolver-core==0.1.1
python -m playwright install chromium

Jalankan instalasi dan pengujian dengan interpreter yang sama. Kegagalan setup yang umum adalah menginstal pustaka browser dalam satu environment dan menjalankan Robot dari environment lain. Impor kemudian gagal sebelum halaman pernah dibuka.

Contoh ini hanya mendeteksi sebuah widget dan membaca parameternya yang publik. Solving berbayar akan membutuhkan kunci API solver yang valid, kesiapan akun, dan workflow terpisah yang disetujui. Tidak ada hasil berbayar yang dihasilkan oleh pengujian di bawah ini.

Buat fixture CAPTCHA milik sendiri

Buat index.html di direktori fixture khusus dan layani dari mesin Anda sendiri.

Google mendokumentasikan kunci uji publik reCAPTCHA v2 di panduan pengujian otomatis‑nya. Fixture menggunakan kunci tersebut untuk memuat widget yang dapat dikenali tanpa menggunakan konfigurasi situs produksi.

html Copy
<!doctype html><html><head><title>Owned CAPTCHA test fixture</title></head><body>
<h1>Owned development page</h1>
<div class="g-recaptcha" data-sitekey="6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI"></div>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
</body></html>

Mulai server lokal dari direktori tersebut:

bash Copy
python -m http.server 8766 --bind 127.0.0.1

Script widget tetap membutuhkan akses jaringan ke Google. Jika widget fixture tidak termuat, periksa prasyarat itu sebelum menafsirkan hasil deteksi kosong. Server lokal mengekspos fixture hanya pada loopback interface.

Kunci uji berguna untuk memeriksa wiring dan pengenalan. Kunci ini bukan bukti representatif untuk tingkat kesulitan tantangan produksi, performa solving berbayar, atau penerimaan aplikasi. Jaga pengujian‑pengujian terpisah itu dalam checklist rilis.

Tambahkan pustaka keyword Python

Simpan pustaka berikut sebagai CaptchaCheck.py di sebelah berkas pengujian Robot Anda.

Pustaka ini memanggil metode get_captcha_info yang terdokumentasi dari Core SDK. Pembungkus khusus Robot sengaja dibuat kecil: ia memulai event loop, membuka browser, membaca informasi, dan menutup browser di blok finally.

python Copy
import asyncio
from robot.api.deco import keyword
from capsolver_core import create_capsolver
from playwright.async_api import async_playwright

@keyword("Inspect CAPTCHA Page")
def inspect_captcha_page(url):
    return asyncio.run(_inspect(url))

async def _inspect(url):
    async with async_playwright() as pw:
        browser = await pw.chromium.launch(headless=True)
        try:
            page = await browser.new_page()
            await page.goto(url, wait_until="networkidle")
            async with create_capsolver() as cap:
                infos = await cap.get_captcha_info(page)
            return [{"type": item.type.value, "url": item.website_url,
                     "site_key": item.website_key} for item in infos]
        finally:
            await browser.close()

Daftar yang dikembalikan berisi dictionary biasa, yang nyaman untuk asersi Robot. Daftar kosong berarti inspeksi ini tidak mengembalikan informasi yang cocok. Daftar kosong tidak boleh diubah menjadi klaim bahwa tidak ada tantangan yang mungkin ada di mana pun dalam workflow.

Penantian pemuatan halaman sesuai untuk fixture kecil ini. Aplikasi produksi dengan aktivitas jaringan yang persisten mungkin membutuhkan kondisi kesiapan lain yang spesifik halaman. Jangan menyalin networkidle ke setiap aplikasi dan menganggapnya membuktikan bahwa widget yang relevan telah selesai dirender.

Tukarkan Kode Bonus CapSolver Anda

Tingkatkan anggaran automasi Anda seketika!
Gunakan kode bonus CAP26 saat melakukan top up akun CapSolver untuk mendapatkan bonus 5% tambahan di setiap pengisian — tanpa batas.
Tukarkan sekarang di Dashboard CapSolver
CapSolver CAP26 recharge bonus promotion

Jalankan pengujian Robot dan inspeksi hasilnya

Simpan berikut ini sebagai captcha.robot di sebelah pustaka dan jalankan ketika server fixture lokal tersedia.

robotframework Copy
*** Settings ***
Library    CaptchaCheck.py
Library    Collections

*** Variables ***
${PAGE_URL}    http://127.0.0.1:8766/

*** Test Cases ***
Identify The Fixture CAPTCHA
    ${items}=    Inspect CAPTCHA Page    ${PAGE_URL}
    Should Not Be Empty    ${items}
    ${first}=    Get From List    ${items}    0
    Should Be Equal    ${first}[type]    reCaptchaV2
    Log    ${items}
bash Copy
python -m robot --outputdir results captcha.robot

Pengujian menegaskan bahwa detector mengembalikan hasil dan bahwa fixture diidentifikasi sebagai reCaptchaV2. Log‑nya berisi URL halaman yang dikembalikan dan sitekey publik. Laporan yang dihasilkan Robot memberi tahu Anda apakah asersi tersebut lolos.

Kelulusan membuktikan rantai spesifik: Robot memanggil keyword Python Anda, Playwright membuka fixture, Core SDK menginspeksi halaman nyata, dan data yang dikembalikan mencapai asersi Robot. Kode menutup browser bahkan ketika terjadi pengecualian.

Bacalah kegagalan pada tahap tempat kegagalan terjadi. Error impor adalah masalah dependensi. Error navigasi adalah masalah akses halaman. Timeout dapat berarti fixture tidak pernah settle. Gagalnya asersi tipe berarti data yang dikembalikan tidak cocok dengan ekspektasi fixture. Kondisi‑kondisi ini membutuhkan koreksi yang berbeda.

Hubungkan deteksi ke workflow solver dengan hati‑hati

Deteksi memasok informasi untuk keputusan solver, tetapi langkah berikutnya harus mempertahankan konteks halaman yang dibutuhkan oleh task.

Panduan SDK resmi menggambarkan solving di browser sebagai operasi terpisah. Jika workflow produksi Anda perlu menyelesaikan dan melanjutkan di halaman yang sama, pertahankan halaman itu dan konteks browsernya tetap hidup sepanjang operasi. Keyword diagnostik dalam artikel ini menutup browsernya dan karenanya bukan langkah lanjutan drop‑in untuk sesi login yang sudah ada.

Tim yang sudah menggunakan SeleniumLibrary atau Robot Framework Browser juga harus membedakan browser aktif mereka dari yang dibuka oleh contoh ini. Berbagi URL tidak berarti berbagi cookie, interaksi sebelumnya, atau objek halaman. Hindari mengklaim bahwa tantangan diselesaikan di browser aktif pengujian ketika pekerjaan sebenarnya terjadi di browser lain.

Untuk pengujian regresi situs milik sendiri yang biasa, kunci uji dari provider mungkin pilihan yang lebih sederhana. Gunakan jalur solver nyata hanya ketika tujuan pengujian menuntut validasi integrasi tersebut. Panduan kunci uji reCAPTCHA menjelaskan batas itu dengan lebih rinci.

Bangun Workflow Automasi Andal dengan CapSolver

Gunakan checkpoint kecil dan eksplisit untuk membedakan CAPTCHA yang dikenali dari kegagalan elemen generik. CapSolver menyediakan kemampuan deteksi dalam contoh ini; Robot Framework mengubah hasilnya menjadi asersi pengujian yang dapat dibaca. Tambahkan solving berbayar hanya sebagai langkah yang diverifikasi terpisah dengan kepemilikan halaman yang benar dan pemeriksaan outcome aplikasi.

FAQ

T: Apakah pengujian Robot ini menyelesaikan CAPTCHA?

Tidak. Pengujian ini mendeteksi CAPTCHA pada fixture dan mengembalikan parameternya yang publik. Pengujian tidak meminta solusi berbayar atau memverifikasi pengiriman form produksi.

T: Apakah ini plugin resmi Robot Framework?

Tidak. Pembungkus keyword Python adalah contoh yang dibangun di atas mekanisme pustaka Robot Framework yang terdokumentasi dan Core SDK resmi. Pembungkus persisnya disertakan agar perilakunya dapat diinspeksi.

T: Bisakah saya menggunakan keyword yang sama di dalam pengujian SeleniumLibrary?

Anda bisa memanggil keyword tersebut, tetapi keyword akan membuka browser Playwright terpisah. Keyword tidak menginspeksi atau melanjutkan sesi browser SeleniumLibrary. Integrasi sesi yang sudah ada memerlukan handoff eksplisit yang didukung.

T: Mengapa fixture mengembalikan daftar kosong?

Periksa apakah script widget termuat, apakah halaman yang diharapkan sedang dilayani, dan apakah SDK mendukung tantangan yang ada. Hasil kosong saja tidak mengidentifikasi penyebabnya.

T: Apakah saya memerlukan kunci API solver untuk contoh ini?

Pemeriksaan deteksi parameter yang didemonstrasikan tidak mengirimkan task solving berbayar. Langkah solving produksi membutuhkan kredensial dan prasyarat yang terdokumentasi untuk operasi tersebut.

T: Haruskah setiap pengujian otomatis memanggil solver CAPTCHA?

Tidak. Gunakan mekanisme uji dari provider untuk pengujian regresi rutin situs milik sendiri bila sesuai. Cadangkan pengujian integrasi solver untuk workflow yang memang ingin Anda validasi, dan jaga agar tetap terbatasi.

Pernyataan Kepatuhan: Informasi yang diberikan di blog ini hanya untuk tujuan informasi. CapSolver berkomitmen untuk mematuhi semua hukum dan peraturan yang berlaku. Penggunaan jaringan CapSolver untuk kegiatan ilegal, penipuan, atau penyalahgunaan sangat dilarang dan akan diselidiki. Solusi penyelesaian captcha kami meningkatkan pengalaman pengguna sambil memastikan kepatuhan 100% dalam membantu menyelesaikan kesulitan captcha selama pengambilan data publik. Kami mendorong penggunaan layanan kami secara bertanggung jawab. Untuk informasi lebih lanjut, silakan kunjungi Syarat Layanan dan Kebijakan Privasi.

Lebih lanjut

Sebuah halaman browser berisi sebuah bingkai aplikasi dan sebuah bingkai widget CAPTCHA bersarang.
CAPTCHA dalam iframe Tidak Terdeteksi? Cara Menemukan Frame yang Tepat

Cari tahu mengapa CAPTCHA yang terlihat terlewat di dalam iframe. Periksa konteks dokumen, pemuatan widget, parameter situs, dan pengalihan browser ke pemecah CAPTCHA Anda.

automation
Logo of CapSolver

Nikolai Smirnov

26-Oct-2026

Tes Robot Framework meneruskan sebuah halaman ke kata kunci deteksi CAPTCHA dan menerima jenis serta sitekey-nya.
Cara Mendeteksi CAPTCHA dalam Pengujian Browser Robot Framework

Deteksi CAPTCHA di Robot Framework dengan keyword Python yang telah teruji dan SDK solver resmi. Periksa parameter halaman dan pahami di mana proses deteksi berhenti.

automation
Logo of CapSolver

Emma Foster

26-Oct-2026

Rencana QA Node.js memisahkan kasus kunci pengujian yang dapat diprediksi dari sejumlah kecil pemeriksaan pemecah CAPTCHA langsung.
Pengujian CAPTCHA di Node.js: Kunci Uji dan Pemeriksaan Solver

Rencanakan pengujian CAPTCHA Node.js dengan kunci uji vendor, pemeriksaan solver yang terkontrol, dan asersi yang jelas. Pisahkan regresi formulir dari kegagalan penyelesaian eksternal.

automation
Logo of CapSolver

Nikolai Smirnov

16-Oct-2026

Alur kerja pemecahan masalah CAPTCHA Selenium: periksa pengaturan, tunggu kesiapan halaman, lalu verifikasi hasil aplikasi.
Masalah CAPTCHA Selenium Umum dan Cara Mengatasi Mereka

Perbaiki masalah integrasi CAPTCHA Selenium umum dengan memeriksa konfigurasi pengujian, ekstensi, waktu tunggu, konteks iframe, respons solver, dan hasil aplikasi.

automation
Logo of CapSolver

Emma Foster

22-Sep-2026

Python Core SDK dan API HTTP langsung dibandingkan dengan aplikasi yang memiliki operasi yang dimaksud dan penerimaan akhir
CapSolver Python Core SDK vs HTTP API: Yang Harus Anda Gunakan?

Pilih SDK Python Core CapSolver atau API HTTP langsung berdasarkan dukungan tugas, akses halaman, penanganan respons, dan tanggung jawab yang dimiliki aplikasi Anda.

automation
Logo of CapSolver

Nikolai Smirnov

16-Sep-2026

Pipa data SEO yang membandingkan bukti SERP historis dan saat ini untuk mengidentifikasi pergeseran tujuan pencarian yang dikonfirmasi
Pemantauan Pergeseran Tujuan Pencarian untuk Alur Kerja SEO AI

Bangun pemantauan pergeseran tujuan pencarian dengan data Search Console, pengamatan SERP yang terkendali, label tujuan, batas kepercayaan, bukti, dan otomatisasi yang aman.

automation
Logo of CapSolver

Emma Foster

31-Aug-2026