Langsung ke konten utama

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.

Postingan populer dari blog ini

3 Cara Otomatis Replace index.php di Linux Ubuntu: Systemd, Cron, dan Shell Loop

Ada beberapa cara untuk membuat Linux Ubuntu otomatis mengganti atau memperbarui file: /var/www/html/index.php secara berkala dari script lokal. Tiga metode yang paling umum adalah: Systemd Service + Timer Cron Shell Loop + nohup Di bawah ini adalah contoh implementasinya. 1. Menggunakan Systemd Service + Timer Metode ini paling cocok untuk VPS atau server Ubuntu normal yang menggunakan systemd . Buat script update sudo nano /usr/local/bin/update-index.sh Isi: #!/bin/sh cat > /var/www/html/index.php <<'EOF' <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Website</title> </head> <body> <h1>INDEX OTOMATIS</h1> </body> </html> EOF Beri permission execute: sudo chmod +x /usr/local/bin/update-index.sh Buat service sudo nano /etc/systemd/system/update-index.service Isi: [Unit] Description=Update index.php [Service] Type=oneshot ExecStart=/usr/local...

Tutorial Dasar GSocket dan gs-netcat di Windows dan Ubuntu

GSocket atau Global Socket Toolkit adalah kumpulan tool yang memungkinkan dua komputer membuat koneksi TCP melalui Global Socket Relay Network (GSRN) . Salah satu tool di dalamnya adalah gs-netcat . Berbeda dengan koneksi TCP tradisional yang biasanya membutuhkan alamat IP dan port tujuan, GSocket memungkinkan dua endpoint saling menemukan berdasarkan sebuah shared secret . Koneksi antarendpoint kemudian dapat dilindungi dengan enkripsi end-to-end. Gambaran Cara Kerja Secara sederhana: Windows | | outbound connection v Global Socket Relay Network ^ | outbound connection | Ubuntu Artinya Ubuntu tidak harus membuka sebuah port publik khusus agar endpoint GSocket dapat berkomunikasi. Ini berbeda dengan SSH langsung: Windows | | SSH v IP Ubuntu:22 Pada SSH biasa, Windows harus mengetahui IP atau domain server serta port SSH yang dapat dijangkau. Apakah gs-netcat Tersedia di Windows? Ya. GSocket menyediakan gs-netcat yang dapat digunaka...