Có cách nào để có XPath trong Google Chrome không?


346

Tôi có một trang web tôi muốn sử dụng với YQL. Nhưng tôi cần XPath của một mục cụ thể. Tôi có thể thấy nó trong khu vực công cụ gỡ lỗi cho Google Chrome nhưng tôi không thấy cách sao chép XPath đó.

Có cách nào để sao chép XPath đầy đủ không?


2
Nếu bạn sẵn sàng cài đặt Firefox ngoài Chrome, bạn có thể sử dụng tiện ích mở rộng xpather .
Adrian Grigore

4
Nếu anh ta sẵn sàng cài đặt Firefox, thì nó đã được tích hợp vào Fireorms.
Verhogen

2
@verhogen: Tôi không nhận thức được điều này, mặc dù tôi đang sử dụng Fireorms hàng ngày. Trong trường hợp người khác quan tâm đến nhiều thông tin hơn, thì đây là: blog.browsermob.com/2009/04/ Khăn
Adrian Grigore

Tôi cũng nâng cấp điều này .... Trình trợ giúp Xpath trong Google Chrome không hoạt động tốt, cả khi nhấn phím tắt [Ctrl + Shift + X] hoặc nhấp vào nút "Đường dẫn X" màu đen (bằng nút cờ lê) trong Bảng điều khiển JS khi có lỗi JS trong trang. Và tôi không thể tìm thấy bất kỳ tiện ích bổ sung tốt nào khác cho Chrome ngoài đó. Không tải xuống tiện ích "Trình kiểm tra XPath" cho Mozilla. Tôi cũng đã tìm thấy vấn đề với tiện ích bổ sung đó. Đảm bảo lấy "XPather" và tải xuống trong khi bạn mở Firefox (không phải một số trình duyệt khác). Để sử dụng phần tử nhấp chuột phải "XPather" và chọn "Hiển thị trong XPather"
MacGyver

Bây giờ Chrome cũng có tiện ích mở rộng "XPather". Tôi cảm thấy nó rất tốt Alt-'x 'để kích hoạt cửa sổ. Bạn có thể nhập xpath và xem kết quả phù hợp. Màn hình hiển thị kết quả trùng khớp khá gọn gàng.
gm2008

Câu trả lời:


555

Bạn có thể sử dụng $xtrong bảng điều khiển javascript của Chrome. Không cần mở rộng.

Ví dụ: $x("//img")

Ngoài ra, hộp tìm kiếm trong trình kiểm tra web sẽ chấp nhận xpath


2
Đẹp - mặc dù tôi không chắc điều này trả lời câu hỏi ban đầu. Bạn tìm ra nó bằng cách nào? Tôi tự hỏi nếu có các chức năng tương tự khác có sẵn trong giao diện điều khiển.
huyz

4
Tôi đoán Chrome đã sao chép hầu hết các lệnh dòng lệnh của Fireorms
huyz

99
Anh ta hỏi "làm thế nào để có được chuỗi xpath cho một phần tử?", Chứ không phải là "làm thế nào để tôi chọn xpath?" phải không anh
Max Williams

3
Thú vị như thế nào Ctrl+Spacekhông tiết lộ $x. Nếu bạn chỉ cần gõ, $xbạn có thể thấy nó đã đạt được như thế nào, do đó OP sẽ có thể xác định cách đạt được những gì họ muốn. Ví dụ; document.evaluate('//h1', document, null, XPathResult.STRING_TYPE, null).stringValue
Alasdair

5
@huyz - Có sẵn các chức năng tương tự. Xem nhà phát triển.google.com/chrom- developer- tools/docs/ console . $ 0 đặc biệt hữu ích: phần tử cuối cùng bạn đã chọn trong công cụ DOM. $ ($ 0) làm cho nó trở thành một đối tượng jQuery (nếu có sẵn jQuery). Ngoài ra, bài viết không đề cập đến bản sao ($ 0), bản sao vào bảng tạm. (Tình cờ, tôi vừa phát hiện ra $ x, và tìm thấy chủ đề này, vì tôi đang cố gắng sử dụng biến đó cho một thứ khác trong bảng điều khiển.)
Nathan Long

244

Nhấp chuột phải vào nút => "Sao chép XPath"


19
Đây là cách dễ nhất để có được một xpath, nó rất có thể bị phá vỡ khi nội dung thay đổi
Juan Mendes

8
@JuanMendes có gì thay thế?
Nate

9
@Nate Không có lựa chọn dễ dàng nào nếu bạn muốn XPath của bạn vẫn hoạt động khi tài liệu thay đổi. Bạn chỉ cần suy nghĩ về nó và cố gắng không thêm thông tin thừa vào XPath của bạn. Một nguyên tắc nhỏ là XPath của bạn càng dài thì càng ít khả năng hoạt động trong các bối cảnh khác.
Juan Mendes

Điều này không cung cấp cho bạn một XPath thực tế cho phần tử duy nhất trên trang. Điều đó sẽ khá khó khăn.
CJ7

1
Trong phiên bản mới của Google chrome, bạn phải nhấp chuột phải vào nút và chọn Sao chép mục XPath đã chuyển sang tùy chọn Sao chép.
Omid Nasri

92

Tất cả các câu trả lời trên đều đúng ở đây là một cách khác với ảnh chụp màn hình.

Từ Chrome:

  1. Nhấp chuột phải vào "kiểm tra" trên mục bạn đang cố gắng tìm xpath
  2. Nhấp chuột phải vào khu vực được tô sáng trên bàn điều khiển.
  3. Chuyển đến Sao chép xpath

nhập mô tả hình ảnh ở đây


24

Tiện ích mở rộng Trình trợ giúp XPath thực hiện những gì bạn cần: https://chrom.google.com.vn/webstore/detail/hgimnogjllphhhkhlmebbmlgjoejdpjl


Có ai biết các lệnh bàn phím cho điều này trên Ubuntu không? crtl-shift-x và lệnh-shift-x dường như không làm gì cả
xiatica

1
@xiatica, bạn đã thử trong một tab mới / được làm mới chưa? Lưu ý rằng tiện ích mở rộng sẽ không hoạt động trong các tab đã mở trước khi cài đặt; các tab như vậy phải được làm mới.
asadovsky

13

Không có phần mở rộng cần thiết trong chrome bây giờ. Nhấp chuột phải vào bất kỳ yếu tố nào bạn muốn xpath và nhấp vào "Kiểm tra phần tử" và sau đó một lần nữa bên trong Thanh tra, nhấp chuột phải vào phần tử và nhấp vào "Sao chép Xpath".


11
Phương pháp này đã được đề cập trong câu trả lời trước, được đăng vào năm ngoái: stackoverflow.com/a/11087353/938089
Rob W

12

Google Chrome cung cấp một công cụ gỡ lỗi tích hợp có tên là " Chrome DevTools ", bao gồm một tính năng tiện dụng có thể đánh giá hoặc xác thực các bộ chọn XPath / CSS mà không cần bất kỳ tiện ích mở rộng của bên thứ ba nào.

Điều này có thể được thực hiện bằng hai cách tiếp cận:

Sử dụng chức năng tìm kiếm bên trong bảng Element để đánh giá các bộ chọn XPath / CSS và tô sáng các nút phù hợp trong DOM. Thực thi mã thông báo $ x ("some_xpath") hoặc $$ ("css-selector") trong bảng điều khiển Console, cả hai sẽ đánh giá và xác thực.

Từ bảng yếu tố

  1. Nhấn F12 để mở DevTools Chrome.

  2. Bảng điều khiển các yếu tố nên được mở theo mặc định.

  3. Nhấn Ctrl + F để bật tìm kiếm DOM trong bảng điều khiển.

  4. Nhập vào bộ chọn XPath hoặc CSS để đánh giá.

  5. Nếu có các yếu tố phù hợp, chúng sẽ được tô sáng trong DOM. Tuy nhiên, nếu có các chuỗi khớp trong DOM, chúng cũng sẽ được coi là kết quả hợp lệ. Ví dụ: tiêu đề bộ chọn CSS phải khớp với mọi thứ (CSS nội tuyến, tập lệnh, v.v.) có chứa tiêu đề từ, thay vì chỉ khớp các phần tử.

nhập mô tả hình ảnh ở đây

Từ bảng điều khiển

  1. Nhấn F12 để mở DevTools Chrome.

  2. Chuyển sang bảng điều khiển.

  3. Nhập vào XPath muốn $x(".//header")đánh giá và xác nhận.

  4. Nhập vào các bộ chọn CSS muốn $$("header")đánh giá và xác nhận.

  5. Kiểm tra kết quả trả về từ thực hiện giao diện điều khiển.

Nếu các yếu tố được khớp, chúng sẽ được trả về trong một danh sách. Nếu không, một danh sách trống [] được hiển thị.

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

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

Nếu bộ chọn XPath hoặc CSS không hợp lệ, một ngoại lệ sẽ được hiển thị bằng văn bản màu đỏ. Ví dụ:

$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

Hãy cho bạn biết một công thức đơn giản để tìm xpath của bất kỳ phần tử nào:

1- Mở trang web trong trình duyệt

2- Chọn phần tử và nhấp chuột phải vào nó

3- Nhấp vào kiểm tra tùy chọn phần tử

4- Nhấp chuột phải vào html đã chọn

5- chọn tùy chọn để sao chép xpath Sử dụng nó bất cứ khi nào bạn cần

Liên kết video này sẽ hữu ích cho bạn. http://screencast.com/t/afXsaQXru

Lưu ý: Đối với các tùy chọn nâng cao của xpath, bạn phải biết biểu thức chính quy hoặc mẫu html của mình.


3
Sử dụng giao diện điều khiển Chrome để kiểm tra điều này và đã làm điều này để upvote: $x('//*[@id="answer-33492958"]/table/tbody/tr[1]/td[1]/div/a[1]')[0].click();
Cagatay Ulubay

8

xpathOnClick có những gì bạn đang tìm kiếm: https://chrom.google.com.vn/extensions/detail/ikbfbhbdjpjnalaooidkdbgjknhghhbo

Đọc các bình luận mặc dù, thực sự phải mất ba lần nhấp để có được xpath.


Không xuất hiện để hoạt động trên Ubuntu 10.04 với chrome 12.0.742.124, cài đặt nhưng khi nhấp vào biểu tượng xpath, sau đó nhấp vào trang (lần đầu tiên để tắt cửa sổ bật lên xpath), sau đó nhấp vào một yếu tố trang (để hiển thị xpath trong bảng điều khiển js ) .... không có gì hiển thị trong giao diện điều khiển. đã thử nghiệm trên trang web plugin
xiatica

8

Kể từ bản cập nhật mới nhất cho chrome, giờ đây bạn có thể nhấp vào bất kỳ phần tử nào trong trình kiểm tra phần tử và sao chép XPath vào bảng tạm.


5

Ví dụ: đối với Chrome:

  1. Nhấp chuột phải vào "kiểm tra" trên mục bạn đang cố gắng tìm XPath.
  2. Nhấp chuột phải vào vùng được tô sáng trên HTML DOM.
  3. Chuyển đến Sao chép> chọn 'Sao chép XPath'.
  4. Sau bước trên, bạn sẽ nhận được XPath tuyệt đối của phần tử từ DOM.
  5. Bạn có thể thực hiện các thay đổi để biến nó thành XPath tương đối (vì nếu DOM thay đổi, XPath của bạn vẫn có thể tìm thấy phần tử).

a. Để làm như vậy, bằng cách mở bảng 'Các thành phần' của trình duyệt, nhấn CTRL + F, dán XPath.

b. Thay đổi như mô tả trong ví dụ sau.

Xpath tuyệt đối = // * [@ id = "ứng dụng"] / div [1] / tiêu đề / nav / div [2] / ul / li [2] / div / nút

Liên kết xpath = // div // nav / div [2] / ul / li [2] / div / nút

Khi bạn thực hiện thay đổi:

  1. đảm bảo XPath là duy nhất trong DOM.
  2. phần tử web vẫn được chọn trên DOM và trên trang web.

3

Chỉ cần nhấp chuột phải vào yếu tố bạn muốn xpath và bạn sẽ thấy một mục menu để sao chép nó. Điều này có thể không tồn tại khi OP thực hiện bài đăng của mình nhưng bây giờ chắc chắn là có.


2

Trong Fireorms trong Firefox, bạn có thể nhấp chuột phải vào một yếu tố sau khi kiểm tra nó và chọn Sao chép XPath. Tôi không thể để ChromYQLip hoạt động trơn tru.


1

Bạn có thể thử sử dụng Chrome Web Extension TruePath để tự động tạo XPath tương đối khi nhấp chuột phải vào trang web và hiển thị tất cả XPath dưới dạng các mục menu.


0

Hơi OT, nhưng có lẽ hữu ích: Trên Mac Chrome, mặc dù bạn không thể sao chép xpath ra khỏi hộp tìm kiếm trong bảng công cụ Dev (thay vào đó, sao chép lấy nút dưới dạng HTML), bạn có thể kéo và thả văn bản vào trình chỉnh sửa bên ngoài.


0

Tôi đã thử hầu hết các tiện ích mở rộng có sẵn và thấy dưới đây là một trong những tiện ích tốt nhất.

Liên kết mở rộng ChroPath

Giống như FirePath, tiện ích mở rộng này trực tiếp cung cấp cho bạn Xpath khi bạn nhấp vào Kiểm tra.

nhập mô tả hình ảnh ở đây


0

nhấn Cntl + Shift + C
chọn phần tử bạn muốn lấy XPathbằng cách nhấp vào
right clickphần tử được tô sáng trong bảng điều khiển
copy->copy XPath

nhập mô tả hình ảnh ở đây


-1

Sử dụng phần mở rộng này, nó tạo ra xpath dựa trên id hoặc class, đây có thể là những gì bạn muốn sử dụng.

Nhấp vào biểu tượng trình duyệt, bảng điều khiển được hiển thị ở góc bên phải của trang, sau đó nhấp vào bắt đầu kiểm tra, sau đó nhấp vào bất kỳ yếu tố nào để nhận xpath của bạn.

Máy phát điện XPath


Không cần thiết vì nó thực sự có sẵn. Ngoài ra, không cần phải tải xuống một ứng dụng hoàn toàn mới cho một cái gì đó mà Chrome / Firefox có thể làm được.
robbyoconnor

@robbyoconnor nếu bạn đã thực hiện một số thử nghiệm hoặc thu thập thông tin hộp đen, bạn sẽ biết rằng trình duyệt tạo xpath không ổn định.
ospider
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.