Melakukan Inspect Element

Sebagai seorang QA atau Testing Engineer, bahwa untuk web atau mobile testing, kita memerlukan operasi-operasi seperti klik, ketik, dll pada elemen website atau mobile. Saat kita akan melakukan automation testing, software automation juga harus mampu melakukan operasi-operasi yang sama pada elemen website atau mobile yang dapat dilakukan oleh manusia. Jadi, sekarang pertanyaannya adalah, bagaimana software automation ini mengidentifikasi elemen website atau mobile mana yang dibutuhkan untuk melakukan operasi tertentu? Jawabannya adalah melalui locators.

Locators

Locator adalah cara untuk mengidentifikasi elemen website atau mobile dan hampir semua tool atau software automation menyediakan kemampuan untuk menggunakan locator untuk mengidentifikasi elemen website atau mobile.

Selenium Locator

Berikut beberapa locator Selenium:

LocatorsDeskripsi
class nameMencari elemen web berdasarkan atribut class yang dicari. Tidak bisa mencari elemen dengan nama class yang digabung.

Contoh:
<input type="text" class="showVisited">
findElement(By.class('showVisited'))
findElement(By.className('showVisited'))
css selectorMencari elemen web berdasarkan CSS selector yang dicari.

Contoh:
<input type="text" id="blue">
findElement(By.cssSelector('input[id="blue"]'))
idMencari elemen web berdasarkan atribut id yang dicari.

Contoh:
<input type="text" id="username">
findElement(By.id('username'))
nameMencari elemen web berdasarkan atribut name yang dicari.

Contoh:
<input type="text" name="username">
findElement(By.name('username'))
link textMencari elemen web yang berbentuk link dengan teks sama dengan yang dicari.

Contoh:
<a href="#">HOME</a>
findElement(By.linkText('HOME'))
partial link textMencari elemen web yang berbentuk link dengan teks berisi yang dicari.

Contoh:
<a href="#">HOMEPAGE</a>
findElement(By.partialLinkText('HOME'))
tag nameMencari elemen web berdasarkan tag.

Contoh:
<select>
<option>Pilihan 1</option>
</select>
findElement(By.tagName('option'))
xpathMencari elemen web berdasarkan DOM dimana elemen yang dicari itu berada.

Contoh:
<html>
<head>
<title>Homepage</title>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
findElement(By.xpath('/html/body/h1'))

Appium Locator

Berikut beberapa locator Appium:

LocatorsDeskripsi
Accessibility IDMencari elemen mobile berdasarkan content-desc.
Class NameMencari elemen mobile berdasarkan UIAutomator2 class.
idMencari elemen mobile berdasarkan resource-id.
nameMencari elemen mobile berdasarkan nama elemen.
xpathMencari elemen mobile berdasarkan hierarki XML (“DOM” mobile).
imageMencari element mobile berdasarkan file base64 image.

Inspect Element

Inspect element adalah proses mencari locator, dimana kita akan gunakan untuk melakukan automation. Seperti yang sudah dijelaskan di atas, locator ini membuat tool atau software automation melakukan interaksi seperti yang manusia lakukan (klik, ketik, dst).

a. Website dengan Inspect Elements

Untuk mencari locator pada elemen website, cukup mudah dan sederhana caranya, langkahnya adalah sebagai berikut:

  1. Jalankan browser dan buka website
  2. Klik kanan elemen yang akan dicari locator-nya.
  3. Klik Inpect.
  4. Akan muncul bagian baru pada browser yang digunakan.
  5. Cari locator yang ada pada elemen tersebut.
  6. Masukkan locator beserta value-nya pada kode automation.

Dari element menu Our Passion di atas, locator yang dapat digunakan adalah locator Link Text dengan value Our Passion.

findElement(By.linkText('Our Passion'))

b. Mobile app dengan Macaca

Untuk mencari locator pada elemen mobile, sejauh yang pernah saya lakukan, kita dapat menggunakan 2 tools, Macaca dan UIAutomator Viewer.

Untuk menggunakan Macaca, maka di komputer harus ter-install Node Package Manager (NPM), untuk dapat menggunakan NPM, maka harus install Node.js terlebih dahulu. Untuk mengunduh Node.js di sini.

Setelah mengunduh dan menginstall Node.js, tahap berikutnya adalah meng-install Macaca melalui NPM dengan langkah sebagai berikut:

  1. Jalankan terminal/command prompt.
  2. Ketik npm install macaca-cli -g
  3. Tekan Enter dan tunggu prosesnya hingga selesai
  4. Ketik macaca doctor
  5. Tekan Enter dan tunggu prosesnya hingga selesai
    macaca doctor untuk memeriksa dependency yang diperlukan
  6. Ketik npm install app-inspector -g
  7. Tekan Enter dan tunggu prosesnya hingga selesai.

Untuk menggunakan Macaca:

  1. Hubungkan device Android (atau emulator ) ke komputer
  2. Jalankan aplikasi yang akan di-inspect elemennya
  3. Jalankan terminal/command prompt.
  4. Ketik adb devices
  5. Tekan Enter
  6. Ingat atau catat device id yang tampil.
  7. Ketik app-inspector -u <device id step 5>
    Contoh: app-inspector -u emulator-5554
  8. Tekan Enter
Macaca Inspector

Dari elemen yang di-inspect (tab For You) maka didapat locator resource-id.

findElement(By.id('com.android.vending:id/0_resource_name_obfuscated'))

c. Mobile app dengan UIAutomator Viewer

Untuk mencari locator pada elemen mobile, sejauh yang pernah saya lakukan, kita dapat menggunakan 2 tools, Macaca dan UIAutomator Viewer.

Untuk menggunakan UIAutomator Viewer, maka di komputer harus ter-install:

Setelah mengunduh dan menginstall JDK dan Android SDK, tahap berikutnya adalah melakukan pengaturan environment, cara melakukan environment variable untuk JDK dan Android SDK dapat membaca artikel sebelumnya di sini.

Jika tahapan di atas sudah dilakukan, maka untuk menjalankan UIAutomator Viewer adalah sebagai berikut:

  1. Hubungkan device Android (atau emulator ) ke komputer
  2. Jalankan aplikasi yang akan di-inspect elemennya
  3. Jalankan terminal/command prompt.
  4. Ketik adb devices
  5. Tekan Enter
  6. Ingat atau catat device id yang tampil.
  7. Ketik uiautomatorviewer
  8. Tekan Enter
  9. Klik icon scanner di sebelah kiri atas (icon hp android warna hijau)
UI Automator Viewer

Dari elemen yang di-inspect (tab For You) maka didapat locator resource-id.

findElement(By.id('com.android.vending:id/0_resource_name_obfuscated'))

Referensi

Leave a comment