Pemilih CSS di Selenium

โšก Ringkasan Cerdas

Pemilih CSS di Selenium adalah strategi pencari lokasi yang ampuh yang mengidentifikasi elemen menggunakan tag HTML, ID, kelas, atribut, dan pola teks internal. Sumber daya ini menjelaskan setiap jenis Selektor CSS dengan contoh langkah demi langkah untuk Selenium ide.

  • ๐Ÿ†” Tag dan ID: Gabungkan tag HTML dengan awalan # untuk menargetkan elemen yang memiliki atribut ID unik secara tepat.
  • ๐ŸŽฏ Tag dan Kelas: Gunakan sintaks titik (.) untuk menemukan elemen yang memiliki kelas CSS yang sama, berguna untuk komponen UI yang berulang.
  • ๐Ÿงฉ Tag dan Atribut: Gunakan tanda kurung [attribute=value] untuk mengidentifikasi elemen melalui nama, tipe, atau pasangan atribut khusus apa pun.
  • ๐Ÿชœ Tag, Kelas, dan Atribut: Gabungkan beberapa kondisi untuk membedakan elemen yang memiliki nama kelas dan nilai atribut yang sama.
  • ๐Ÿ”ค Pencocokan Teks Dalam: Gunakan pola :contains(โ€œtextโ€) untuk menemukan label dan elemen yang tidak memiliki ID, nama, atau kelas.
  • โœ… Praktek terbaik: Lebih baik menggunakan ID yang stabil daripada pemilih yang bersarang terlalu dalam agar tetap terjaga. Selenium Skrip otomatisasi yang tahan terhadap perubahan UI.

Pemilih CSS di Selenium

Apa itu CSS Selector? Selenium?

A Pemilih CSS di Selenium Selektor CSS adalah pola string yang mengidentifikasi elemen web melalui kombinasi tag HTML, ID, kelas, dan atribut. Selektor CSS sedikit lebih canggih daripada pencarian berdasarkan ID atau Nama, tetapi merupakan strategi paling populer di kalangan pengembang berpengalaman. Selenium pengguna karena mereka dapat mengakses elemen yang sama sekali tidak memiliki atribut ID atau Nama.

Pemilih CSS di Selenium hadir dalam berbagai bentuk, tetapi panduan ini berfokus pada lima pola paling umum yang digunakan dalam Selenium ide:

  • Tandai dan tanda pengenal
  • Tag dan Kelas
  • Tag dan Atribut
  • Tag, Kelas, dan Atribut
  • Teks Dalam

Saat menggunakan strategi ini dalam Selenium IDE, selalu awali Target kotak dengan โ€œCSS=โ€ seperti yang ditunjukkan pada setiap contoh di bawah ini.

Mengapa Menggunakan Selektor CSS di Selenium?

Selektor CSS adalah strategi pencari lokasi yang disukai oleh banyak orang. Selenium Para insinyur otomatisasi memilih CSS Selector karena mereka menyeimbangkan kecepatan, fleksibilitas, dan keterbacaan. Aplikasi web modern sering menggunakan ID yang dihasilkan secara dinamis atau menghapus atribut nama sepenuhnya, sehingga CSS Selector menjadi satu-satunya cara yang andal untuk menargetkan elemen tertentu pada halaman.

Keunggulan utama menggunakan CSS Selector meliputi:

  • Kinerja: Selektor CSS diproses oleh mesin bawaan browser, sehingga eksekusinya lebih cepat daripada ekspresi XPath yang setara, terutama di browser lama seperti Internet Explorer.
  • Fleksibilitas: Mereka menggabungkan logika tag, kelas, atribut, dan pencocokan parsial, memungkinkan penguji untuk menargetkan elemen yang tidak memiliki ID tetap.
  • dibaca: Sintaksnya mencerminkan cara pengembang sudah menulis aturan CSS, yang mempersingkat kurva pembelajaran baik untuk insinyur QA maupun tim front-end.
  • Stabilitas lintas browser: Selektor CSS berperilaku konsisten di seluruh Chrome, Firefox, Edge, dan Safari, mengurangi kegagalan pengujian yang tidak stabil.

Tag dan ID โ€“ Pemilih CSS

Contoh ini menggunakan kotak teks Email pada halaman login Facebook. Elemen tersebut memiliki ID โ€œemailโ€œ, dan elemen tersebut sudah diakses di bagian โ€œMencari berdasarkan IDโ€. Sekarang elemen yang sama ditargetkan menggunakan Selenium Selektor CSS dengan atribut ID.

Sintaksis

css=tag#id

  • tag = tag HTML dari elemen yang sedang diakses
  • # = tanda pagar, yang harus selalu ada saat menggunakan Selenium Pemilih CSS dengan ID
  • id = ID elemen yang sedang diakses

Perlu diingat bahwa ID selalu diawali dengan tanda pagar (#).

Langkah 1) Navigasi ke www.facebook.comDengan menggunakan DevTools di browser Anda (atau alat lama seperti Firebug), periksa kotak teks โ€œEmail atau Teleponโ€.

Perhatikan bahwa tag HTML-nya adalah โ€œmemasukkanโ€ dan ID-nya adalah โ€œemailโ€œ. Dengan demikian, Selektor CSS lengkapnya menjadi โ€œcss=masukan#email".

Tag dan id - Pemilih CSS di Selenium

Langkah 2) Masukkan "css=masukan#email" ke dalam Target kotak Selenium IDE dan klik tombol Temukan. Selenium IDE menyoroti elemen yang cocok di halaman.

Selenium IDE menyoroti kolom Email melalui Tag dan ID.

Tag dan Kelas โ€“ Pemilih CSS

Pemilih CSS di Selenium Penggunaan tag HTML dan nama kelas mengikuti konsep yang sama seperti tag dan ID, tetapi titik (.) menggantikan tanda pagar.

Sintaksis

css=tag.class

  • tag = tag HTML dari elemen yang sedang diakses
  • . = tanda titik, yang harus selalu ada saat menggunakan Selektor CSS dengan kelas
  • class = kelas elemen yang sedang diakses

Langkah 1) Buka halaman demo https://demo.guru99.com/test/facebook.html dan periksa kotak teks โ€œEmail atau Teleponโ€. Perhatikan bahwa tag HTML-nya adalah โ€œmemasukkanโ€ dan kelasnya adalah โ€œteks masukan".

Tag dan kelas - Pemilih CSS di Selenium

Langkah 2) In Selenium IDE, masukkan โ€œcss=masukan.teks masukan" dalam Target kotak dan klik Temukan. Selenium IDE mengenali kotak teks Email atau Telepon.

Selenium IDE menemukan elemen berdasarkan Tag dan Kelas

Perlu diperhatikan bahwa ketika beberapa elemen memiliki tag dan kelas HTML yang sama, hanya elemen pertama yang cocok dalam kode sumber yang akan dikenali. Periksa kotak teks Kata Sandi di halaman yang sama dan perhatikan bahwa kotak teks tersebut memiliki kelas yang sama dengan kotak teks Email atau Telepon.

Beberapa elemen yang memiliki Tag dan Kelas yang sama

Pada ilustrasi sebelumnya, hanya kotak teks Email atau Telepon yang disorot karena muncul pertama kali di kode sumber halaman.

Penentuan urutan sumber halaman Selenium pertandingan

Tag dan Atribut โ€“ Pemilih CSS

Strategi ini menggabungkan tag HTML dengan atribut spesifik yang dimiliki oleh elemen yang ingin Anda akses.

Sintaksis

css=tag[attribute=value]

  • tag = tag HTML dari elemen yang sedang diakses
  • [ dan ] = tanda kurung siku yang mengapit atribut dan nilai yang sesuai
  • atribut = atribut yang akan digunakan. Pilih salah satu yang unik untuk elemen tersebut, seperti nama atau id.
  • value = nilai yang sesuai dari atribut yang dipilih.

Langkah 1) Arahkan ke folder Mercury Halaman Pendaftaran Tur https://demo.guru99.com/test/newtours/register.php dan periksa kotak teks โ€œNama Belakangโ€. Perhatikan tag HTML-nya (โ€œinputโ€) dan atribut namanya (โ€œlastNameโ€).

Tag dan atribut - Pemilih CSS di Selenium

Langkah 2) In Selenium IDE, masukkan โ€œcss=masukan[nama=Nama Belakang]" dalam Target kotak dan klik Temukan. Selenium IDE berhasil menemukan kolom Nama Belakang.

Selenium IDE menemukan Nama Belakang melalui atribut.

Jika beberapa elemen memiliki tag dan atribut HTML yang sama, hanya elemen pertama yang akan dikenali. Perilakunya identik dengan menemukan elemen dengan tag dan kelas yang sama.

Tag, Kelas, dan Atribut โ€“ Pemilih CSS

Sintaksis

css=tag.class[attribute=value]

  • tag = tag HTML dari elemen yang sedang diakses
  • . = tanda titik, yang harus selalu ada saat menggunakan Selektor CSS dengan kelas
  • class = kelas elemen yang sedang diakses
  • [ dan ] = tanda kurung siku yang mengapit atribut tertentu dan nilai yang sesuai
  • atribut = atribut yang akan digunakan. Pilih salah satu yang unik untuk elemen tersebut, seperti nama atau id.
  • value = nilai yang sesuai dari atribut yang dipilih.

Langkah 1) Buka halaman demo https://demo.guru99.com/test/facebook.html dan periksa kotak input โ€œEmail atau Teleponโ€ dan โ€œKata Sandiโ€. Perhatikan tag HTML, kelas, dan atributnya. Contoh ini menggunakan โ€œtabindexatribut โ€.

Tag, kelas, dan atribut - Pemilih CSS

Langkah 2) Akses kotak teks โ€œEmail atau Teleponโ€ terlebih dahulu menggunakan nilai tabindex 1. Masukkan โ€œcss=masukan.teks masukan[tabindex=1]"Ke Selenium IDE Target Pilih kotak dan klik Cari. Kolom Email atau Telepon akan disorot.

Selenium IDE menemukan Email berdasarkan tag, kelas, atribut

Langkah 3) Untuk menargetkan kotak input Kata Sandi, cukup ganti nilai tabindex. Masukkan โ€œcss=masukan.teks masukan[tabindex=2]" dalam Target kotak dan klik Temukan. Selenium IDE berhasil menemukan kotak teks Kata Sandi.

Selenium IDE menemukan kata sandi berdasarkan tag, kelas, dan atribut.

Teks Dalam โ€“ Selektor CSS

Label HTML jarang diberi atribut id, name, atau class. Jadi bagaimana cara mengaksesnya? SeleniumJawabannya ada melalui teks internal mereka. Teks bagian dalam adalah pola string sebenarnya yang ditampilkan label HTML pada halaman.

Sintaksis

css=tag:contains("inner text")

  • tag = tag HTML dari elemen yang sedang diakses
  • Teks dalam = konten teks yang terlihat dari elemen tersebut

Langkah 1) Arahkan ke folder Mercury Beranda tur https://demo.guru99.com/test/newtours/ dan periksa label โ€œKata Sandiโ€. Perhatikan tag HTML-nya (โ€œfontโ€ dalam hal ini) dan amati bahwa elemen tersebut tidak memiliki atribut class, id, atau name.

Teks dalam - Inspeksi Selektor CSS

Langkah 2) Tipe css=font:berisi("Kata Sandi:") ke Selenium IDE Target kotak dan klik Temukan. Selenium IDE menemukan label Kata Sandi seperti yang ditunjukkan di bawah ini.

Selenium IDE menemukan label Kata Sandi berdasarkan teks internal.

Langkah 3) Kali ini, ganti teks bagian dalam dengan โ€œBostonโ€ sehingga Target menjadi โ€œcss=font:berisi(โ€œBostonโ€)โ€œ. Klik Cari. Label โ€œBoston ke San Franciscoโ€ disorot, menunjukkan bahwa Selenium IDE dapat menemukan label yang panjang bahkan ketika hanya kata pertama dari teks dalamnya yang diberikan.

Selenium Pencocokan teks dalam sebagian IDE

Selektor CSS vs XPath dalam Selenium

Baik CSS Selector maupun XPath digunakan untuk mengidentifikasi elemen web. SeleniumNamun, keduanya memiliki kekuatan yang berbeda. Tabel di bawah ini membandingkan kedua strategi pencarian lokasi berdasarkan dimensi-dimensi utama:

Kriteria Pemilih CSS XPath
Kecepatan Lebih cepat, berjalan menggunakan mesin bawaan browser. Lebih lambat, terutama di browser lama.
Kepemimpinan Teruskan saja (dari orang tua ke anak) Maju dan mundur (anak ke orang tua)
Sintaksis Lebih singkat dan mirip dengan aturan CSS. Ekspresi jalur hierarkis yang lebih panjang
Pencocokan teks Terbatas pada pseudo-kelas :contains() Fungsi text() dan contains() yang kuat
Terbaik untuk Tata letak statis dan aplikasi web modern Penelusuran DOM yang kompleks dan pencari lokasi berbasis teks.

Praktik Terbaik untuk Menulis Selektor CSS di Selenium

Menulis Selector CSS yang andal lebih dari sekadar mengetahui sintaksnya. Praktik-praktik berikut membantu penguji membuat Selector yang stabil dan mudah dipelihara. Selenium Skrip yang tetap berfungsi setelah perubahan UI:

  1. Lebih menyukai atribut unik: Selalu pilih atribut id, data-test-id, atau name yang secara eksplisit ditambahkan untuk otomatisasi. Atribut-atribut ini tetap stabil meskipun tata letak visual berubah.
  2. Hindari penggunaan selector yang terlalu bertingkat: Rantai panjang seperti div > div > ul > li > a Mudah rusak saat pengembang melakukan refactoring pada markup. Usahakan agar selector sesingkat mungkin.
  3. Gunakan pencocokan sebagian dengan bijak: Pola seperti [class*="btn-primary"] mentoleransi perubahan nama kelas kecil, tetapi mungkin juga cocok dengan elemen yang tidak diinginkan.
  4. Hindari penggunaan locator berbasis indeks: Pemilih seperti nth-child(3) rapuh karena penambahan elemen saudara kandung menggeser setiap posisi.
  5. Validasi pemilih di DevTools: Sebelum menjalankan Selenium skrip, tempelkan selektor ke Konsol Chrome DevTools menggunakan document.querySelector() untuk memastikan bahwa fungsi tersebut mengembalikan tepat satu elemen.
  6. Gabungkan atribut untuk keunikan: Ketika suatu kelas digunakan bersama oleh banyak elemen, tambahkan filter atribut seperti input.form-control[name="email"] untuk memperjelas target.
  7. Dokumentasikan dan gunakan kembali: Sentralisasikan selektor di dalam kelas Page Object sehingga satu pembaruan dapat memperbaiki setiap pengujian yang merujuk pada elemen yang sama.

Mengikuti pedoman ini mengurangi ketidakpastian, meningkatkan kecepatan eksekusi pengujian, dan membuat Selenium suite lebih mudah dirawat seiring waktu.

Ringkasan: Referensi Cepat Sintaks Selektor CSS

Tabel di bawah ini merangkum setiap Selenium Pola Selektor CSS yang dibahas dalam panduan ini:

metode Target Sintaksis Example
Tandai dan tanda pengenal css=tag#id css=masukan#email
Tag dan Kelas css=tag.kelas css=masukan.teks masukan
Tag dan Atribut css=tag[atribut=nilai] css=masukan[nama=Nama Belakang]
Tag, Kelas, dan Atribut css=tag.class[atribut=nilai] css=masukan.teks masukan[tabindex=1]
Teks Dalam css=tag:berisi(โ€œteksโ€) css=font:berisi("Kata Sandi:")

Pertanyaan Umum Demo Slot

Ya. Selektor CSS umumnya dieksekusi lebih cepat daripada XPath karena browser memproses aturan CSS secara native. Perbedaan ini paling terlihat pada versi Internet Explorer yang lebih lama, sedangkan browser modern seperti Chrome dan Firefox mempersempit kesenjangan.

Ya. Selektor CSS yang ditulis untuk Selenium IDE bekerja langsung di Selenium WebDriver melalui By.cssSelector()Satu-satunya perbedaan adalah WebDriver tidak memerlukan awalan โ€œcss=โ€, karena tipe locator ditentukan oleh metode itu sendiri.

Tidak. Firebug dihentikan pada tahun 2017 setelah digabungkan ke Firefox Alat Pengembang. Saat ini, penguji menggunakan DevTools bawaan di Chrome, Firefoxatau Edge untuk memeriksa elemen dan memvalidasi Selektor CSS sebelum menambahkannya ke Selenium script.

Ya. Alat-alat berbasis AI seperti TestimMabl dan ChatGPT dapat menyarankan Selektor CSS dengan menganalisis DOM. Mereka mengurangi upaya pemeliharaan dengan menyesuaikan selektor ketika pengembang mengganti nama kelas atau menyusun ulang halaman.

Mesin pemulihan mandiri berbasis AI menganalisis DOM di sekitarnya dan secara otomatis memulihkan locator yang rusak. Ketika sebuah Selector CSS gagal, mesin tersebut mengidentifikasi elemen yang paling cocok menggunakan kesamaan atribut, konten teks, dan pola historis, sehingga mengembalikan stabilitas pengujian.

Gunakan pola pencocokan sebagian seperti [id^="user_"] untuk awalan, [id$="_btn"] untuk akhiran, atau [id*="cart"] untuk substring. Pola-pola ini cocok dengan ID yang dihasilkan secara dinamis tanpa memerlukan nilai yang tepat.

Selektor CSS tidak dapat menelusuri ke atas dari elemen anak ke elemen induknya dan menawarkan dukungan pencocokan teks yang terbatas. Untuk skenario ini, XPath tetap menjadi pilihan yang lebih baik. CSS juga kekurangan fungsi bawaan untuk logika saudara kandung selain saudara kandung yang berdekatan dan saudara kandung umum.

Buka DevTools browser, beralih ke tab Konsol, dan jalankan document.querySelectorAll("your-selector")NodeList yang dikembalikan menampilkan setiap elemen yang cocok. Sebuah metode yang dapat diandalkan. Selenium Locator harus mengembalikan tepat satu elemen untuk penargetan unik.

Ringkaslah postingan ini dengan: