Pencarian

Sabtu, 20 Juli 2024

Penggunaan XPATH di Python

XPath adalah singkatan dari XML Path Language. XPath adalah bahasa yang digunakan untuk menavigasi melalui elemen dan atribut dalam dokumen XML. Meskipun XPath awalnya dirancang untuk XML, XPath juga sering digunakan untuk menavigasi dan memilih elemen dalam HTML, terutama saat menggunakan alat otomatisasi web seperti Selenium.

Fungsi Utama XPath:

  1. Menavigasi Struktur Dokumen: XPath memungkinkan Anda menavigasi struktur hierarkis dari dokumen XML atau HTML.
  2. Memilih Elemen dan Atribut: XPath memungkinkan Anda memilih elemen dan atribut spesifik berdasarkan berbagai kriteria.
  3. Menjalankan Operasi Logika: XPath dapat menjalankan operasi logika untuk membuat seleksi lebih canggih dan dinamis.

Sintaks Dasar XPath:

Berikut adalah beberapa konsep dasar dan contoh sintaks XPath:

  1. Pemilihan Elemen:

    • //tag_name: Memilih semua elemen dengan nama tag tertentu di seluruh dokumen.
      • Contoh: //button memilih semua elemen <button> dalam dokumen.
    • /tag_name: Memilih elemen anak langsung dari elemen akar atau elemen yang ditentukan.
      • Contoh: /html/body memilih elemen <body> yang merupakan anak langsung dari elemen <html>.
  2. Predikat (Kondisi):

    • [condition]: Menambahkan kondisi untuk memfilter elemen yang dipilih.
      • Contoh: //button[@class='btn'] memilih semua elemen <button> yang memiliki atribut class dengan nilai btn.
  3. Atribut:

    • @attribute_name: Mengakses nilai atribut dari elemen.
      • Contoh: //input[@type='text'] memilih semua elemen <input> yang memiliki atribut type dengan nilai text.
  4. Operasi Logika:

    • contains(): Memeriksa apakah string mengandung substring tertentu.
      • Contoh: //span[contains(text(), 'example')] memilih semua elemen <span> yang mengandung teks 'example'.
  5. Hierarki:

    • //: Memilih elemen di seluruh dokumen, tidak peduli posisinya.
    • /: Memilih elemen anak langsung dari elemen sebelumnya.

Contoh Penggunaan XPath:

  1. Memilih Elemen Berdasarkan Atribut:

    //button[@aria-label='Dukung Turun']

    XPath ini memilih semua elemen <button> yang memiliki atribut aria-label dengan nilai 'Dukung Turun'.

  2. Memilih Elemen Berdasarkan Teks yang Dikandung:

    //button[.//span[contains(text(), 'Dukung Naik')]]

    XPath ini memilih semua elemen <button> yang mengandung elemen <span> dengan teks 'Dukung Naik'.

  3. Memilih Elemen dengan Kombinasi Atribut dan Kondisi:

    //div[@class='example' and contains(text(), 'sample')]

    XPath ini memilih semua elemen <div> yang memiliki atribut class dengan nilai 'example' dan mengandung teks 'sample'.

Kegunaan XPath:

XPath sangat berguna dalam pengujian dan otomasi web karena memungkinkan pemilihan elemen web yang kompleks dan dinamis. Ini membantu dalam menulis skrip pengujian yang lebih fleksibel dan dapat diandalkan untuk menginteraksi dengan elemen-elemen halaman web secara otomatis.

Dengan memahami dan menggunakan XPath dengan benar, Anda dapat menavigasi dan memanipulasi elemen dalam dokumen HTML dan XML dengan cara yang sangat efisien dan kuat.


LEBIH DETIAL LAGI

Untuk mempermudah contoh XPath berikut.

"//button[.//span[contains(text(), 'Dukung Naik')]]" 

"//button[@aria-label='Dukung Turun']"

Mari kita jelaskan XPath tersebut lebih detail lagi.

1. XPath: //button[.//span[contains(text(), 'Dukung Naik')]]

Penjelasan:

XPath ini digunakan untuk menemukan elemen <button> yang mengandung elemen <span> dengan teks tertentu.

Rincian:

  • //button: Memilih semua elemen <button> dalam dokumen, tidak peduli di mana posisinya dalam struktur dokumen.

  • [.//span[contains(text(), 'Dukung Naik')]]: Ini adalah kondisi (predikat) yang diterapkan pada elemen <button> yang dipilih.

    • .: Merujuk pada node saat ini dalam konteks, dalam hal ini adalah elemen <button>.
    • //span: Memilih semua elemen <span> yang merupakan keturunan dari node saat ini (elemen <button>).
    • contains(text(), 'Dukung Naik'): Fungsi ini memeriksa apakah konten teks dari elemen <span> mengandung string 'Dukung Naik'.

Penjelasan Lengkap:

XPath //button[.//span[contains(text(), 'Dukung Naik')]] melakukan hal berikut:

  1. Memulai dengan memilih semua elemen <button> dalam dokumen.
  2. Untuk setiap elemen <button>, memeriksa apakah ada elemen <span> di dalamnya yang mengandung teks 'Dukung Naik'.
  3. Jika elemen <span> tersebut ditemukan dalam sebuah <button>, maka elemen <button> tersebut dipilih.

Dengan kata lain, XPath ini memilih semua elemen <button> yang memiliki elemen <span> keturunan dengan teks 'Dukung Naik'.

2. XPath: //button[@aria-label='Dukung Turun']

Penjelasan:

XPath ini digunakan untuk menemukan elemen <button> yang memiliki atribut tertentu dengan nilai yang diberikan.

Rincian:

  • //button: Memilih semua elemen <button> dalam dokumen, tidak peduli di mana posisinya dalam struktur dokumen.

  • [@aria-label='Dukung Turun']: Ini adalah kondisi (predikat) yang diterapkan pada elemen <button> yang dipilih.

    • @aria-label: Menyatakan atribut aria-label dari elemen <button>.
    • 'Dukung Turun': Nilai tepat yang harus dimiliki oleh atribut aria-label agar elemen <button> tersebut dipilih.

Penjelasan Lengkap:

XPath //button[@aria-label='Dukung Turun'] melakukan hal berikut:

  1. Memulai dengan memilih semua elemen <button> dalam dokumen.
  2. Kemudian memfilter elemen-elemen ini untuk memilih hanya elemen <button> yang memiliki atribut aria-label dengan nilai 'Dukung Turun'.

Dengan kata lain, XPath ini memilih semua elemen <button> di mana atribut aria-label nya tepat bernilai 'Dukung Turun'.

Ringkasan

  • //button[.//span[contains(text(), 'Dukung Naik')]]: Memilih semua elemen <button> yang mengandung elemen <span> dengan teks 'Dukung Naik'.
  • //button[@aria-label='Dukung Turun']: Memilih semua elemen <button> yang memiliki atribut aria-label dengan nilai 'Dukung Turun'.

Memahami XPath ini membantu Anda menargetkan elemen spesifik pada halaman web berdasarkan struktur dan atributnya, yang sangat berguna saat bekerja dengan Selenium untuk otomatisasi web.

© 2015 [BUG] GEDEBUG All Rights Reserved.