Ada kalanya kita perlu mengakses elemen (biasanya teks) yang terdapat dalam jadual HTML. Walau bagaimanapun, jarang sekali pereka web memberikan atribut id atau nama kepada sel tertentu dalam jadual. Oleh itu, kami tidak dapat menggunakan kaedah biasa seperti "By.id ()", "By.name ()", atau "By.cssSelector ()". Dalam kes ini, pilihan yang paling boleh dipercayai adalah mengaksesnya menggunakan kaedah "By.xpath ()".
Dalam Tutorial ini, anda akan belajar-
Cara menulis XPath untuk Jadual
Mengakses Jadual Bersarang
Menggunakan Atribut sebagai Predikat
Jalan pintas: Gunakan Elemen Pemeriksaan untuk Mengakses Jadual di Selenium
Cara menulis XPath untuk Jadual
Pertimbangkan kod HTML di bawah.
Kami akan menggunakan XPath untuk mendapatkan teks dalaman sel yang mengandungi teks "sel keempat."
Langkah 1 - Tetapkan Elemen Ibu Bapa (jadual)
Pencari XPath dalam WebDriver selalu bermula dengan garis miring dua kali ganda "//" dan kemudian diikuti oleh elemen induk . Oleh kerana kita berurusan dengan jadual, elemen induk harus selalu menjadi tag
. Oleh itu, bahagian pertama pencari XPath kami harus dimulakan dengan "// table".
Langkah 2 - Tambahkan elemen kanak-kanak
Elemen yang berada di bawah
adalah
sehingga kita dapat mengatakan bahawa
adalah "anak" dari
. Dan juga,
adalah "induk" dari
. Semua elemen anak di XPath diletakkan di sebelah kanan elemen induknya, dipisahkan dengan satu garis miring "/" seperti kod yang ditunjukkan di bawah.
Langkah 3 - Tambah Predikat
Elemen
mengandungi dua tag
. Kita sekarang boleh mengatakan bahawa dua tag
ini adalah "anak" dari
. Oleh itu, kita boleh mengatakan bahawa
adalah induk kedua elemen
.
Perkara lain yang dapat kita simpulkan adalah bahawa dua elemen
adalah saudara kandung. Adik beradik merujuk kepada unsur anak yang mempunyai ibu bapa yang sama .
Untuk ke
kita ingin mengakses (satu dengan teks "sel keempat"), kita perlu mengakses yang kedua
dan bukan yang pertama. Sekiranya kita hanya menulis "// table / tbody / tr", maka kita akan mengakses tag
pertama.
Jadi, bagaimana kita mengakses
kedua kemudian? Jawapan untuk ini adalah menggunakan Predicates .
Predicate adalah nombor atau atribut HTML yang disertakan dalam sepasang tanda kurung persegi "[]" yang membezakan elemen anak dari adik-beradiknya . Oleh kerana
yang perlu kita akses adalah yang kedua, kita akan menggunakan "[2]" sebagai predikat.
Sekiranya kita tidak menggunakan predikat, XPath akan mengakses saudara pertama. Oleh itu, kita dapat mengakses
pertama menggunakan salah satu kod XPath ini.
Langkah 4 - Tambahkan Elemen Anak yang Berjaya Menggunakan Predikat yang Sesuai
Elemen seterusnya yang perlu kita akses adalah
kedua. Dengan menerapkan prinsip yang telah kita pelajari dari langkah 2 dan 3, kita akan menyelesaikan kod XPath kita seperti yang ditunjukkan di bawah.
Sekarang kita mempunyai pencari XPath yang betul, kita sudah dapat mengakses sel yang kita inginkan dan mendapatkan teks dalamannya dengan menggunakan kod di bawah. Ini mengandaikan bahawa anda telah menyimpan kod HTML di atas sebagai "newhtml.html" dalam C Drive anda.
Prinsip yang sama yang dibincangkan di atas berlaku untuk jadual bersarang. Jadual bersarang adalah jadual yang terletak di dalam jadual lain . Contohnya ditunjukkan di bawah.
Untuk mengakses sel dengan teks "4-5-6" menggunakan konsep "// induk / anak" dan predikat dari bahagian sebelumnya, kita seharusnya dapat menghasilkan kod XPath di bawah.
Kod WebDriver di bawah seharusnya dapat mengambil teks dalaman sel yang sedang kita akses.
Output di bawah mengesahkan bahawa jadual dalaman berjaya diakses.
Menggunakan Atribut sebagai Predikat
Sekiranya elemen ditulis jauh di dalam kod HTML sehingga nombor yang akan digunakan untuk predikat sangat sukar ditentukan, kita boleh menggunakan atribut unik elemen itu.
Dalam contoh di bawah, sel "New York to Chicago" terletak jauh ke dalam kod HTML beranda Mercury Tours.
Dalam kes ini, kita dapat menggunakan atribut unik tabel (lebar = "270") sebagai predikat. Atribut digunakan sebagai predikat dengan awalannya dengan simbol @ . Dalam contoh di atas, sel "New York to Chicago" terletak di
pertama
keempat, dan XPath kami harus seperti yang ditunjukkan di bawah.
Ingat bahawa apabila kita meletakkan kod XPath di Java, kita harus menggunakan garis miring karakter pelarian "\" untuk tanda petik berganda di kedua sisi "270" supaya argumen rentetan By.xpath () tidak akan dihentikan sebelum waktunya .
Kami kini bersedia untuk mengakses sel tersebut dengan menggunakan kod di bawah.
Jalan pintas: Gunakan Elemen Pemeriksaan untuk Mengakses Jadual di Selenium
Sekiranya nombor atau atribut elemen sangat sukar atau mustahil diperoleh, cara terpantas untuk menghasilkan kod XPath adalah dengan menggunakan Inspect Element.
Pertimbangkan contoh di bawah dari halaman utama Mercury Tours.
Langkah 1
Gunakan Firebug untuk mendapatkan kod XPath.
Langkah 2
Cari elemen induk "jadual" pertama dan padamkan semuanya di sebelah kiri daripadanya.
Langkah 3
Awal bahagian kod yang tinggal dengan garis miring berganda "//" dan salin ke kod WebDriver anda.
Kod WebDriver di bawah akan berjaya mengambil teks dalaman elemen yang sedang kita akses.
By.xpath () biasanya digunakan untuk mengakses elemen jadual.
Sekiranya elemen ditulis jauh di dalam kod HTML sehingga nombor yang akan digunakan untuk predikat sangat sukar ditentukan, kita boleh menggunakan atribut unik elemen itu.
Atribut digunakan sebagai predikat dengan awalannya dengan simbol @.
Gunakan Elemen Pemeriksaan untuk Mengakses Jadual di Selenium