Hỏi về lấy xpath trên chrome

Em muốn lấy giá trị trong 1 ô trên một trang web, để lấy được địa chỉ ô đó em có copy Xpath, em chạy javaScript như sau:

document.evaluate('đường dẫn xpath', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerHTML;
  • Cứ kiểm tra phần tử ô đó thì chạy code lại được, sau khi load lại trang thì lại không được.
    Các bác cho em hỏi làm thế nào để lấy được xpath cố định của phần tử ạ.

Dùng querySelector() thì ổn hơn không?

2 Likes

bạn cần check document ready trước khi chạy nha
nếu ko check thì javascript sẽ chạy trước khi html được render xong, dẫn tới không xpath đúng

5 Likes

đầu tiên em cảm ơn bác, nhưng làm thế lúc load lại trang vẫn không được bác ạ

Em đã thử nhưng vẫn thế

Có thể cho mình xem xPath đó được không ?? Vì xPath cố định thì hơi khoai, do cấu trúc trang thay đổi một chút là có thể sai rồi @@ Sao không dùng sang một số dạng query cụ thể, như ID chẳng hạn ??

4 Likes

Đoạn html thì thế này bác ạ:
#doccument

    <html>

    <head><style></style><link href="/DXR.axd?r=101_110-RHKUb" type="text/css" rel="stylesheet"></head>

    <body class="dxheDesignViewArea_Office2010BlueMix dxheViewArea_Office2010BlueMix" contenteditable="true" style="border-width: 0px;"></body>

    </html>

    ”
xpath: `/html/body`

vì cụm này lại nằm trong cụm body khác nên khi load lại trang lại không được bác ạ

Với xPath này thì không sai @@

Bạn xem nó có phải nằm trong 1 iframe khác không ?? Vì nếu như là iframe thì phải bắt sự kiện ready của iframe đó chứ không phải document. Và phải inject script trong iframe đó nữa

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?