Як перевірити вираз XPath в інструменті розробників Chrome або Firebug Firefox?


179

Як я можу перевірити свій XPath?

Я використовую інструмент для розробників Chrome, щоб перевірити елементи та сформувати свій XPath. Я перевіряю це за допомогою Chrome plugin XPath Checker, однак це не завжди дає мені результат. Що є кращим способом перевірити свій XPath.

Я також спробував використовувати Firebug для перевірки помилки, а також використовуючи FirePath для перевірки. Але чи Firepath також перевіряє XPath.

Мій останній варіант буде використовувати Selenium WebDriver для підтвердження моєї XPath.

Відповіді:


367

Хром

Цього можна досягти трьома різними підходами (детальніше див. Тут статтю мого блогу ):

  • Шукайте на Elementsпанелі, як показано нижче
  • Виконати $x()та $$()на Consoleпанелі, як показано у відповіді Лоуренса
  • Розширення сторонніх розробників (не дуже потрібні в більшості випадків, можуть бути надмірними)

Ось як ви шукаєте XPath на Elementsпанелі:

  1. Натисніть, F12щоб відкрити інструмент для розробників Chrome
  2. На панелі "Елементи" натисніть Ctrl+F
  3. У полі пошуку введіть XPath або CSS Selector, якщо елементи знайдені, вони будуть виділені жовтим кольором.

введіть тут опис зображення

Firefox (з версії 75)

Оскільки FF 75 можна використовувати необроблений запит xpath без оцінки виразів xpath, для отримання додаткової інформації див документацію .

Firefox (попередня версія 75)

  1. Виберіть "Веб-консоль" у підменю "Веб-розробник" у меню Firefox (або меню Інструменти, якщо ви відображаєте рядок меню або перебуваєте на Mac OS X)
    або натисніть комбінацію клавіш Ctrl+ Shift+ K( Command+ Option+ Kв OS X).
  2. У командному рядку внизу використовуйте наступне:

    • $(): Повертає перший елемент, який відповідає. Еквівалентна document.querySelector()або викликає $функцію на сторінці, якщо вона існує.

    • $$(): Повертає масив вузлів DOM, які відповідають. Це як для document.querySelectorAll(), але повертає масив замість а NodeList.

    • $x(): Оцінює вираз XPath та повертає масив відповідних вузлів.


Firefox (попередня версія 49)

  1. Встановити Firebug
  2. Встановити Firepath
  3. Натисніть, F12щоб відкрити Firebug
  4. Перехід на FirePathпанель
  5. У спадному меню виберіть XPathor CSS
  6. Введіть, щоб знайти

введіть тут опис зображення


2
Лише одне попередження для XPath та браузерів, оскільки це призводить до великої плутанини: stackoverflow.com/questions/18241029/…
Jens Erat

@JensErat: Дійсно хороший момент. Для інших, хто читає цей коментар, як уже згадувалося в цьому питанні, на Selenium не впливає, оскільки він працює в браузерах і використовує ті ж основні технології оцінки JavaScript з інструментами розробників.
Yi Zeng

1
@ user1177636: Яке програмне забезпечення ви використовували для створення цих GIF?
JacekM

Якщо вам також потрібен локальний аналізатор для XQuery, я знайшов BaseX: basex.org/products
tuxErrante

4
Відповідь потребує оновлення для Firefox. На жаль, Firebug застарілий і був об’єднаний в Інструменти для розробників. Наразі ви можете протестувати експресію xpath у консолі, наприклад$("//div")
derloopkat

53

Ви можете відкрити DevTools в Chrome за допомогою CTRL+IWindows (або CMD+IMac) та Firefox F12, а потім вибрати Consoleвкладку) і перевірити XPath, ввівши $x("your_xpath_here").
Це поверне масив зіставлених значень. Якщо вона порожня, ви знаєте, що на сторінці немає відповідності.

Firefox v66 (квітень 2019):

Firefox v66 консолі xpath

Chrome v69 (квітень 2019):

Консоль Chrome v69 xpath


1
Цей метод не є ідеальним, але це добре знати, тому що незалежно від виразу xpath, який ви пишете на цій консолі, може виконувати JavascriptExecutor у Selenium. Іноді ви можете використовувати це як вирішення, можливо, коли вимкнено події Firefox?
djangofan

1
@djangofan, як ти маєш на увазі? За цією логікою обидві ці відповіді, хоча і правильні, не потрібні вашій логіці.
Арран

1
@bosnjak при спробі цього в консолі $x("//input[@name='q']")я отримавVM251:1 Uncaught TypeError: $x is not a function at <anonymous>:1:1
YasserKhalil

@YasserKhalil, який браузер ви використовуєте, яку версію? На якому сайті ви це робите?
bosnjak

16

За допомогою хрому чи опери

без плагінів, без написання жодного символу синтаксису XPath

  1. клацніть правою кнопкою миші потрібний елемент, а потім "перевірити"
  2. клацніть правою кнопкою миші на виділеному тезі елемента, виберіть копію> Копіювати Xpath.

;)

введіть тут опис зображення


2
Для Chrome це найкраще рішення, яке я ще бачив. Дякую, що поділились. Полегшує підтвердження в Chrome, коли я не хочу використовувати Firefox.
Автоматизовано

Я використовував це з великою користю. Але одна велика проблема полягає в тому, що іноді контекстне меню вимикається або перезаписується. Тоді вам слід покластися на інші підходи.
ouflak

1
Це насправді не відповідає на питання. Це не перевірка існуючого xpath, це генерування. Той, який генерує Chrome, часто некрасивий і дуже крихкий, коли існує набагато краще рішення.
майор-майор

6

Ось розширення ChroPath для Chrome, яке має багато розширених функцій порівняно з FirePath. Виконайте наступні кроки:

  1. Відкрити панель розробників.
  2. Клацніть правою кнопкою миші будь-де на веб-сторінці.
  3. Клацніть Перевірити.
  4. У правій частині вкладки Елементи клацніть на вкладці ChroPath.

Тут ви отримаєте XPath / CSS, а також можете його редагувати та оцінювати.

Завантажте аддон


1
Розширення ChroPath все ще працює у 2020 році. Дякую. Велика допомога.
Бульбашки

1

Ще один варіант перевірки вашого xpath - це використання селену IDE.

  1. Встановіть Firefox Selenium IDE
  2. Відкрийте свою програму у FireFox та відкрийте IDE
  3. У новому рядку IDE вставте xpath до цілі та натисніть Знайти. Відповідний елемент буде виділено у вашій заявці

Селен IDE


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.