Tuesday, 1 July 2025
QA

Memahami Select Element / Locator dalam Automate Testing

tips selector element

Dalam dunia automated testing, hal paling mendasar adalah kemampuan untuk menemukan dan berinteraksi dengan elemen UI. Elemen ini bisa berupa tombol, input, checkbox, ataupun label. Untuk bisa melakukan aksi otomatisasi, kita perlu locator — sebuah cara untuk menunjukkan “di mana” elemen tersebut berada di halaman, aplikasi mobile, maupun aplikasi desktop.

Artikel ini membahas konsep dasar Select Element / Locator yang bersifat universal, dapat digunakan lintas bahasa dan tools — seperti Selenium, Cypress, Playwright, Appium (untuk mobile), hingga WinAppDriver atau Winium (untuk desktop).

Apa itu Locator?

Locator adalah instruksi atau aturan untuk menemukan elemen dalam struktur antarmuka (HTML di web, XML di mobile, UI tree di desktop). Tanpa locator, automation tool tidak tahu elemen mana yang ingin diuji.

Locator = “petunjuk arah” untuk robot testing agar bisa menemukan dan berinteraksi dengan elemen UI.

Tujuan Penggunaan Locator

  • Menemukan elemen yang ingin diuji/interaksi
  • Melakukan aksi seperti klik, input teks, scroll
  • Melakukan verifikasi/assertion terhadap state elemen

Jenis Locator (Web, Mobile, Desktop)

Web App (HTML-based)

Jenis LocatorContohKeterangan
By ID#submit-buttonUnik, cepat – disarankan
By Class.form-groupUmum, tapi bisa ambigu
By Name[name="email"]Sering muncul di form
By Texttext="Submit"Cocok untuk tombol/link
By CSS Selectordiv > input[type="text"]Fleksibel dan powerful
By XPath//button[@type='submit']Ekspresif dan kuat, bisa lintas level DOM
By Custom Attribute[data-testid="login-btn"]Stabil, ideal untuk testing

Mobile App (Android & iOS via Appium)

Locator AppiumContohDigunakan Untuk
Accessibility ID"loginButton"Sangat direkomendasikan
Resource ID (Android)"com.app:id/username"Berdasarkan ID elemen Android native
XPath//android.widget.TextView[@text="Login"]Alternatif fleksibel, tapi lebih lambat
Class Name"android.widget.EditText"Bisa digunakan, tapi rentan ambigu
iOS Predicate/Stringname == 'Login'Untuk elemen iOS

⚠️ Gunakan accessibilityLabel atau content-desc (di Android) untuk stabilitas dan aksesibilitas lebih baik.


Desktop App (Windows App via WinAppDriver/Winium)

Jenis LocatorContohKeterangan
Automation ID"SubmitBtn"Sangat disarankan (setara ID di web)
Name"Submit"Nama visual elemen
ClassName"Button"Kelas kontrol UI
XPath//Button[@Name='Submit']Berguna jika tidak ada Automation ID
Control Type"Edit", "Button"Umum dalam struktur UI Windows

Penjelasan Tambahan tentang XPath

XPath (XML Path Language) adalah cara powerful untuk menavigasi elemen dalam DOM atau struktur UI.

Contoh Umum XPath:

  • //input[@type='text'] – cari semua input text
  • //button[text()='Login'] – cari tombol dengan teks “Login”
  • //div[@id='main']//a – cari anchor di dalam #main
  • //*[contains(@class, 'btn-primary')] – cari elemen dengan class mengandung kata tersebut

Kelebihan:

✅ Bisa mencari berdasarkan atribut, posisi, struktur hirarki
✅ Cocok saat tidak ada ID/nama yang stabil

Kekurangan:

❌ XPath cenderung lebih lambat
❌ XPath bisa rapuh jika struktur DOM berubah
❌ XPath terlalu panjang membuat maintenance lebih sulit

Best Practice:

  • Gunakan XPath hanya jika tidak ada alternatif locator yang stabil
  • Hindari path berdasarkan posisi (seperti //div[3]/ul/li[1]) jika memungkinkan

Best Practice Umum dalam Memilih Locator

  1. Stabilitas > Singkat
    Gunakan locator yang tidak berubah walau UI berubah (misal data-testid, automationId, accessibilityId).
  2. Readable dan Maintainable
    Hindari locator yang terlalu panjang atau kompleks.
  3. Gunakan Abstraksi
    Buat fungsi/helper atau gunakan Page Object Model (POM) untuk menyimpan locator.
  4. Cek Unik dan Eksistensi
    Pastikan locator hanya menemukan satu elemen agar interaksi tidak ambigu.

Kesimpulan

Selector / Locator adalah fondasi dari automated testing — entah itu di web, mobile, atau desktop. Dengan memahami berbagai jenis locator dan prinsip penggunaannya, kita bisa membangun automated test yang kuat, stabil, dan maintainable.

Kuasai dasar ini, dan kamu sudah menyelesaikan bagian tersulit dari pengujian otomatisasi antarmuka.

Mau saya bantu buat strukturnya?

Fredy Siswanto

Fredy Siswanto

About Author

Leave a Reply

Your email address will not be published. Required fields are marked *

You may also like