Google ChromeでXPathを取得する方法はありますか?


346

YQLで使用したいWebページがあります。しかし、特定のアイテムのXPathが必要です。Google Chromeのデバッグツール領域で確認できますが、XPathをコピーする方法がわかりません。

完全なXPathをコピーする方法はありますか?


2
Chromeに加えてFirefoxをインストールする場合は、xpather拡張機能を使用できます。
Adrian Grigore、2013年

4
彼が喜んでFirefoxをインストールするのであれば、それはすでにFirebugに組み込まれています。
Verhogen 2011年

2
@verhogen:ほぼ毎日Firebugを使用していますが、私はこれに気付きませんでした。場合、他の誰かがより多くの情報に興味を持っている、ここにある:blog.browsermob.com/2009/04/...
エイドリアングリゴール

私もこれを賛成しています... Google ChromeのXpathヘルパーは、[Ctrl + Shift + X]ショートカットキーを押すか、または[レンチ]ボタンで黒い[Xパス]ボタンをクリックすると、うまく機能しません。ページにJSエラーがある場合のJSコンソール。また、Chrome用の他の優れたアドオンはありませんでした。Mozilla用の「XPath Checker」アドオンをダウンロードしないでください。そのアドオンにも問題があります。「XPather」を入手し、Firefoxを開いている間にダウンロードしてください(他のブラウザではありません)。「XPather」の右クリック要素を使用して「Show in XPather」を選択するには
MacGyver

現在、Chromeには「XPather」拡張機能もあります。とてもいい感じです。Alt-'x 'でウィンドウをアクティブにします。xpathを入力して、一致した結果を確認できます。一致した結果の表示はかなりきれいです。
gm2008

回答:


555

$xChrome JavaScriptコンソールで使用できます。拡張は必要ありません。

例: $x("//img")

また、Webインスペクタの検索ボックスはxpathを受け入れます


2
いいですね-確かにこれが元の質問の答えになるとは思いません。どのようにしてそれを知りましたか?コンソールで使用できる他の同様の機能があるかどうかと思います。
huyz

4
ChromeはFirebugコマンドラインコマンドのほとんどをコピーしたと思います:getfirebug.com/wiki/index.php/Command_Line_API
huyz

99
彼は、「xpathでどのように選択するのか」ではなく、「要素のxpath文字列を取得する方法」を尋ねていました。彼でしたね?
Max Williams

3
興味深いのCtrl+Spaceは明らかにしない$x。入力するだけで$x、どのように達成されるかを確認できます。したがって、OPは、彼らが望むものを達成する方法を決定できるはずです。例えば; document.evaluate('//h1', document, null, XPathResult.STRING_TYPE, null).stringValue
Alasdair

5
@huyz-利用可能な同様の関数があります。developers.google.com/chrome-developer-tools/docs/consoleをご覧ください。$ 0は特に便利です。DOMツールで最後に選択した要素です。$($ 0)はjQueryオブジェクトにします(jQueryが利用可能な場合)。また、この記事ではクリップボードにコピーするcopy($ 0)については触れていません。(ちなみに、私はちょうどX $を発見し、私はコンソールで何か他のもののためにその変数を使用しようとしていたので、このスレッドを発見した。)
ネイサンロング

244

ノードを右クリック=> "XPathをコピー"


19
これは、xpathを取得するための最ももろい方法です。コンテンツが変更されると壊れる可能性が非常に高くなります
Juan Mendes

8
@JuanMendes代替案は何ですか?
2014

9
@Nateドキュメントが変更されてもXPathを機能させたい場合は、簡単な方法はありません。あなたはそれについて考え、XPathに余分な情報を追加しないようにする必要があります。経験則として、XPathが長いほど、他のコンテキストで機能する可能性は低くなります。
ファンメンデス、2014

これは、ページ上の一意の要素の実際のXPathを提供しません。それはかなり難しいでしょう。
CJ7 2017年

1
新しいバージョンのGoogle Chromeでは、ノードを右クリックして、[コピー]オプションに移動した[XPathアイテムをコピー]を選択する必要があります。
Omid Nasri

92

上記のすべての答えは正しいです。ここではスクリーンショットを使用する別の方法もあります。

Chromeから:

  1. xpathを見つけようとしているアイテムを右クリックして「検査」
  2. コンソールの強調表示された領域を右クリックします。
  3. xpathのコピーに移動します

ここに画像の説明を入力してください


24

XPath Helper拡張機能が必要なことを実行します:https : //chrome.google.com/webstore/detail/hgimnogjllphhhkhlmebbmlgjoejdpjl


誰かがubuntuでこれのためのキーボードコマンドを知っていますか?crtl-shift-xとcommand-shift-xは何もしないようです
xiatica

1
@xiatica、新しい/更新されたタブで試しましたか?拡張機能は、インストール前に開いていたタブでは機能しないことに注意してください。このようなタブは更新する必要があります。
asadovsky 2011

13

現在、Chromeで拡張機能は必要ありません。xpathを適用する要素を右クリックして[要素の検査]をクリックし、インスペクタ内でもう一度要素を右クリックして[Xpathのコピー]をクリックします。


11
この方法は、昨年投稿された前回の回答で既に言及されています。stackoverflow.com
Rob W

12

Google Chromeは、「Chrome DevTools」と呼ばれる組み込みのデバッグツールを提供します。これには、サードパーティの拡張機能なしでXPath / CSSセレクターを評価または検証できる便利な機能が含まれています。

これは、次の2つの方法で実行できます。

要素パネル内の検索機能を使用して、XPath / CSSセレクターを評価し、DOM内の一致するノードを強調表示します。評価と検証の両方を行うコンソールパネルでトークン$ x( "some_xpath")または$$( "css-selectors")を実行します。

要素パネルから

  1. F12キーを押してChrome DevToolsを開きます。

  2. 要素パネルはデフォルトで開かれるべきです。

  3. パネルでDOM検索を有効にするには、Ctrl + Fを押します。

  4. 評価するXPathまたはCSSセレクターを入力します。

  5. 一致する要素がある場合、それらはDOMで強調表示されます。ただし、DOM内に一致する文字列がある場合、それらも有効な結果と見なされます。たとえば、CSSセレクターヘッダーは、要素のみではなく、ヘッダーという単語を含むすべて(インラインCSS、スクリプトなど)と一致する必要があります。

ここに画像の説明を入力してください

コンソールパネルから

  1. F12キーを押してChrome DevToolsを開きます。

  2. コンソールパネルに切り替えます。

  3. XPathを入力して、$x(".//header")評価と検証を行います。

  4. $$("header")評価および検証するCSSセレクターを入力します。

  5. コンソール実行から返された結果を確認します。

要素が一致した場合、それらはリストで返されます。それ以外の場合は、空のリスト[]が表示されます。

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

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

XPathまたはCSSセレクターが無効な場合、例外は赤いテキストで表示されます。例えば:

$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

任意の要素のxpathを見つける簡単な式を教えてください。

1-ブラウザでサイトを開く

2-要素を選択して右クリックします

3-要素検査オプションをクリック

4-選択したhtmlを右クリック

5- xpathをコピーするオプションを選択する

このビデオリンクはあなたのために役立ちます。 http://screencast.com/t/afXsaQXru

注:xpathの詳細オプションについては、htmlの正規表現またはパターンを知っている必要があります。


3
これをテストするためにChromeコンソールを使用し、これを$x('//*[@id="answer-33492958"]/table/tbody/tr[1]/td[1]/div/a[1]')[0].click();
賛成投票しました

8

xpathOnClickはあなたが探しているものを持っています:https ://chrome.google.com/extensions/detail/ikbfbhbdjpjnalaooidkdbgjknhghhbo

コメントを読んでも、実際にはxpathを取得するには3回のクリックが必要です。


クロム12.0.742.124をインストールしたubuntu 10.04では動作しないように見えますが、xpathアイコンをクリックしてから、ページをクリックして(最初はxpathポップアップを閉じます)、ページ要素をクリックします(jsコンソールでxpathを表示するには) )....コンソールには何も表示されません。プラグインサイトでテスト済み
xiatica

8

chromeの最新の更新では、要素インスペクターで任意の要素をクリックして、XPathをクリップボードにコピーできるようになりました。


5

たとえばChromeの場合:

  1. XPathを検索しようとしているアイテムを右クリックします。
  2. HTML DOMの強調表示された領域を右クリックします。
  3. 「コピー」に移動し、「XPathのコピー」を選択します。
  4. 上記のステップの後、DOMから要素の絶対XPathを取得します。
  5. 相対XPathにするために変更を加えることができます(DOMが変更されても、XPathは要素を見つけることができるためです)。

a。これを行うには、ブラウザーの「要素」パネルを開いてCTRL + Fを押し、XPathを貼り付けます。

b。次の例の説明に従って変更を行います。

絶対xpath = // * [@ id = "app"] / div [1] / header / nav / div [2] / ul / li [2] / div / button

関連するxpath = // div // nav / div [2] / ul / li [2] / div / button

変更を加える場合:

  1. XPathがDOM内で一意であることを確認してください。
  2. それでも、Web要素はDOMとWebページで選択されています。

3

XPathを適用する要素を右クリックすると、それをコピーするためのメニュー項目が表示されます。これは、OPが投稿した時点では存在していなかったかもしれませんが、現在は確かに存在しています。


2

FirefoxのFirebugでは、要素を調べて右クリックし、[XPathのコピー]を選択できます。ChromYQLipをスムーズに動作させることができませんでした。


1

Webページを右クリックして相対XPathを動的に生成し、すべてのXPathをメニュー項目として表示するChrome Web Extension TruePathを使用してみてください。


0

少しOTですが、おそらく便利です。MacChromeでは、開発ツールパネルの検索ボックスからxpathをコピーすることはできません(代わりにノードをHTMLとしてコピーする)ことはできませんが、テキストを外部エディターにドラッグアンドドロップできます。


0

私は利用可能なほとんどすべての拡張機能を試してみましたが、以下が最良の拡張機能の1つであることがわかりました。

ChroPath Extensionリンク

FirePathと同様に、この拡張機能はInspectをクリックしたときに直接Xpathを提供します。

ここに画像の説明を入力してください


0

プレスCntl + Shift + C
あなたはそのを取得したい要素を選択XPathしてクリックし、
right clickコンソールで強調表示部分には
copy- >copy XPath

ここに画像の説明を入力してください


-1

この拡張機能を使用すると、IDまたはクラスに基づいてxpathが生成されます。これは、おそらく使用したいものです。

ブラウザーのアイコンをクリックすると、パネルがページの右隅に表示されます。次に、[検査の開始]をクリックし、任意の要素をクリックして、xpathを取得します。

XPathジェネレーター


ネイティブで利用できるため必要ありません。また、Chrome / Firefoxがネイティブで実行できる何かのためにまったく新しいアプリケーションをダウンロードする必要もありません。
robbyoconnor

@robbyoconnorブラックボックスのテストやクロールを行った場合、ブラウザが生成したxpathがそれほど安定していないことがわかります。
オスパイダー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.