Apakah ada cara untuk mendapatkan XPath di Google Chrome?


346

Saya memiliki halaman web yang ingin saya gunakan dengan YQL. Tapi aku butuh XPath dari item tertentu. Saya bisa melihatnya di area alat debug untuk Google Chrome tapi saya tidak melihat cara untuk menyalin XPath itu.

Apakah ada cara untuk menyalin XPath penuh?


2
Jika Anda ingin menginstal Firefox selain Chrome, Anda dapat menggunakan ekstensi xpather .
Adrian Grigore

4
Jika dia ingin menginstal Firefox, itu sudah dibangun di Firebug.
Verhogen

2
@verhogen: Saya tidak mengetahui hal ini, meskipun saya menggunakan Firebug hampir setiap hari. Dalam kasus orang lain tertarik pada info lebih lanjut, ini dia: blog.browsermob.com/2009/04/…
Adrian Grigore

Saya juga mendukung ini .... Pembantu Xpath di Google Chrome tidak berfungsi dengan baik, baik ketika menekan tombol pintas [Ctrl + Shift + X] atau mengklik tombol hitam "X Path" (dengan tombol kunci inggris) di Konsol JS saat ada kesalahan JS di halaman. Dan saya tidak dapat menemukan pengaya yang bagus untuk Chrome di luar sana. Jangan unduh add-on "XPath Checker" untuk Mozilla. Saya juga menemukan masalah dengan add-on itu. Pastikan Anda mendapatkan "XPather" dan unduh selagi Firefox terbuka (bukan peramban lain). Untuk menggunakan elemen klik kanan "XPather" dan pilih "Show in XPather"
MacGyver

Sekarang Chrome memiliki ekstensi "XPather" juga. Saya merasa ini sangat bagus. Alt-'x 'untuk mengaktifkan jendela. Anda dapat memasukkan xpath dan melihat hasil yang cocok. Tampilan hasil yang cocok cukup rapi.
gm2008

Jawaban:


555

Anda dapat menggunakan $xdi konsol javascript Chrome. Tidak perlu ekstensi.

ex: $x("//img")

Juga kotak pencarian di web inspektur akan menerima xpath


2
Bagus - walaupun saya tidak yakin ini menjawab pertanyaan awal. Bagaimana Anda mengetahuinya? Saya bertanya-tanya apakah ada fungsi serupa lainnya yang tersedia di konsol.
huyz

4
Saya kira Chrome disalin sebagian besar perintah baris perintah Firebug: getfirebug.com/wiki/index.php/Command_Line_API
HUYZ

99
Dia bertanya "bagaimana cara mendapatkan string xpath untuk sebuah elemen?", Daripada "bagaimana saya memilih dengan xpath?" bukan?
Max Williams

3
Bagaimana menarik Ctrl+Spacetidak mengungkapkan $x. Jika Anda cukup mengetik $xAnda dapat melihat bagaimana hal itu dicapai, oleh karena itu OP harus dapat menentukan bagaimana mencapai apa yang mereka inginkan. Sebagai contoh; document.evaluate('//h1', document, null, XPathResult.STRING_TYPE, null).stringValue
Alasdair

5
@ huyz - ada fungsi serupa yang tersedia. Lihat developers.google.com/chrome-developer-tools/docs/console . $ 0 sangat berguna: elemen terakhir yang Anda pilih di alat DOM. $ ($ 0) menjadikannya objek jQuery (jika jQuery tersedia). Juga, artikel itu tidak menyebutkan salinan ($ 0), yang menyalin ke clipboard. (Kebetulan, saya baru saja menemukan $ x, dan menemukan utas ini, karena saya mencoba menggunakan variabel itu untuk sesuatu yang lain di konsol.)
Nathan Long

244

Klik kanan pada node => "Salin XPath"


19
Ini adalah cara yang paling rapuh untuk mendapatkan xpath, sangat mungkin rusak karena perubahan konten
Juan Mendes

8
@JuanMendes apa alternatifnya?
Nate

9
@Nate Tidak ada alternatif mudah jika Anda ingin XPath Anda tetap berfungsi saat dokumen berubah. Anda hanya perlu memikirkannya dan mencoba untuk tidak menambahkan informasi berlebihan ke XPath Anda. Aturan praktisnya adalah semakin lama XPath Anda, semakin kecil kemungkinannya untuk bekerja dalam konteks lain.
Juan Mendes

Ini tidak memberi Anda XPath yang sebenarnya untuk elemen unik pada halaman. Itu akan sangat sulit.
CJ7

1
Di versi baru Google chrome, Anda harus mengklik kanan pada simpul dan memilih Salin item XPath yang dipindahkan ke opsi Salin.
Omid Nasri

92

Semua jawaban di atas benar di sini adalah cara lain dengan tangkapan layar juga.

Dari Chrome:

  1. Klik kanan "periksa" pada item yang Anda cari xpath
  2. Klik kanan pada area yang disorot di konsol.
  3. Pergi ke Salin xpath

masukkan deskripsi gambar di sini



13

Tidak perlu ekstensi di chrome sekarang. Klik kanan pada elemen apa pun yang Anda inginkan untuk xpath dan klik "Periksa Elemen" dan kemudian lagi di dalam Inspektur, klik kanan pada elemen dan klik pada "Salin Xpath".


11
Metode ini sudah disebutkan dalam jawaban sebelumnya, diposting tahun lalu: stackoverflow.com/a/11087358/938089
Rob W

12

Google Chrome menyediakan alat debugging internal yang disebut " Chrome DevTools " di luar kotak, yang mencakup fitur praktis yang dapat mengevaluasi atau memvalidasi pemilih XPath / CSS tanpa ekstensi pihak ketiga.

Ini dapat dilakukan dengan dua pendekatan:

Gunakan fungsi pencarian di dalam panel Elemen untuk mengevaluasi pemilih XPath / CSS dan menyorot titik yang cocok di DOM. Jalankan token $ x ("some_xpath") atau $$ ("css-selectors") di panel Console, yang akan mengevaluasi dan memvalidasi.

Dari panel Elemen

  1. Tekan F12 untuk membuka Chrome DevTools.

  2. Panel elemen harus dibuka secara default.

  3. Tekan Ctrl + F untuk mengaktifkan pencarian DOM di panel.

  4. Ketik pemilih XPath atau CSS untuk mengevaluasi.

  5. Jika ada elemen yang cocok, mereka akan disorot dalam DOM. Namun, jika ada string yang cocok di dalam DOM, mereka akan dianggap sebagai hasil yang valid juga. Misalnya, tajuk pemilih CSS harus cocok dengan semua (CSS sebaris, skrip, dll.) Yang berisi tajuk kata, alih-alih mencocokkan elemen saja.

masukkan deskripsi gambar di sini

Dari panel Konsol

  1. Tekan F12 untuk membuka Chrome DevTools.

  2. Beralih ke panel Konsol.

  3. Ketik XPath suka $x(".//header")mengevaluasi dan memvalidasi.

  4. Ketik pemilih CSS suka $$("header")mengevaluasi dan memvalidasi.

  5. Periksa hasil yang dikembalikan dari eksekusi konsol.

Jika elemen dicocokkan, mereka akan dikembalikan dalam daftar. Kalau tidak, daftar kosong [] ditampilkan.

$x(".//article")
[<article class="unit-article layout-post">…</article>]

$x(".//not-a-tag")
[ ]

Jika pemilih XPath atau CSS tidak valid, pengecualian akan ditampilkan dalam teks merah. Sebagai contoh:

$x(".//header/")
SyntaxError: Failed to execute 'evaluate' on 'Document': The string './/header/' is not a valid XPath expression.

$$("header[id=]")
SyntaxError: Failed to execute 'querySelectorAll' on 'Document': 'header[id=]' is not a valid selector.

10

Biarkan Anda memberi tahu Anda rumus sederhana untuk menemukan xpath elemen apa pun:

1- Buka situs di browser

2- Pilih elemen dan klik kanan di atasnya

3- Klik periksa opsi elemen

4- Klik kanan pada html yang dipilih

5- pilih opsi untuk menyalin xpath Gunakan di mana pun Anda membutuhkannya

Tautan video ini akan membantu Anda. http://screencast.com/t/afXsaQXru

Catatan: Untuk opsi xpath lanjutan, Anda harus tahu regex atau pola html Anda.


3
Menggunakan konsol Chrome untuk menguji ini dan melakukan ini untuk $x('//*[@id="answer-33492958"]/table/tbody/tr[1]/td[1]/div/a[1]')[0].click();
memperbaiki

8

xpathOnClick memiliki apa yang Anda cari: https://chrome.google.com/extensions/detail/ikbfbhbdjpjnalaooidkdbgjknhghhbo

Baca komentarnya, sebenarnya butuh tiga klik untuk mendapatkan xpath.


Tampaknya tidak berfungsi di ubuntu 10.04 dengan chrome 12.0.742.124, instal tetapi ketika mengklik ikon xpath, lalu klik halaman (pertama kali untuk menghilangkan popup xpath), lalu klik pada elemen halaman (untuk menampilkan xpath di konsol js ) .... tidak ada yang muncul di konsol. diuji di situs plugin
xiatica

8

Pada pembaruan terbaru untuk chrome, Anda sekarang dapat mengklik elemen apa saja di inspektur elemen dan menyalin XPath ke clipboard.


5

Untuk Chrome, misalnya:

  1. Klik kanan "periksa" pada item yang Anda coba temukan XPath.
  2. Klik kanan pada area yang disorot pada HTML DOM.
  3. Pergi ke Salin> pilih 'Salin XPath'.
  4. Setelah langkah di atas, Anda akan mendapatkan XPath absolut elemen dari DOM.
  5. Anda dapat membuat perubahan untuk membuatnya relatif XPath (karena jika DOM berubah, XPath Anda masih akan dapat menemukan elemen).

Sebuah. Untuk melakukannya, dengan membuka panel 'Elemen' browser, tekan CTRL + F, rekatkan XPath.

b. Buat perubahan seperti yang dijelaskan dalam contoh berikut.

Xpath absolut = // * [@ id = "app"] / div [1] / header / nav / div [2] / ul / li [2] / div / tombol

Xpath terkait = // div // nav / div [2] / ul / li [2] / div / tombol

Saat Anda melakukan perubahan:

  1. pastikan XPath itu unik di dalam DOM.
  2. elemen web masih dipilih pada DOM dan pada halaman web.

3

Cukup klik kanan pada elemen yang Anda inginkan untuk xpath dan Anda akan melihat item menu untuk menyalinnya. Ini mungkin tidak ada ketika OP membuat jabatannya tetapi pasti ada di sana sekarang.


2

Di Firebug di Firefox, Anda dapat mengklik kanan suatu elemen setelah memeriksanya, dan memilih Salin XPath. Saya tidak bisa membuat ChromYQLip bekerja dengan lancar.


1

Anda dapat mencoba menggunakan TruePath Ekstensi Web Chrome yang secara dinamis menghasilkan XPath relatif pada klik kanan pada halaman web dan menampilkan semua XPath sebagai item menu.


0

OT sedikit, tetapi mungkin berguna: Di Mac Chrome, meskipun Anda tidak dapat menyalin xpath dari kotak pencarian di panel alat Dev (sebagai gantinya, salin ambil simpul sebagai HTML), Anda dapat menarik dan melepas teks ke editor eksternal.


0

Saya mencoba hampir semua ekstensi yang tersedia dan menemukan di bawah ini menjadi salah satu yang terbaik.

Tautan Ekstensi ChroPath

Sama seperti FirePath, ekstensi ini secara langsung memberi Anda Xpath ketika Anda mengklik Inspect.

masukkan deskripsi gambar di sini


0

tekan Cntl + Shift + C
pilih elemen yang ingin Anda peroleh XPathdengan mengkliknya pada
right clickbagian yang disorot di konsol
copy->copy XPath

masukkan deskripsi gambar di sini


-1

Gunakan ekstensi ini, ini menghasilkan xpath berdasarkan id atau kelas, yang mungkin ingin Anda gunakan.

Klik pada ikon browser, panel ditampilkan di sudut kanan halaman, lalu klik mulai periksa, lalu klik pada elemen apa saja untuk mendapatkan xpath Anda.

Generator XPath


@robbyoconnor jika Anda telah melakukan beberapa pengujian atau perayapan blackbox, Anda akan tahu bahwa browser yang dihasilkan xpath tidak stabil.
ospider
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.