YQLで使用したいWebページがあります。しかし、特定のアイテムのXPathが必要です。Google Chromeのデバッグツール領域で確認できますが、XPathをコピーする方法がわかりません。
完全なXPathをコピーする方法はありますか?
YQLで使用したいWebページがあります。しかし、特定のアイテムのXPathが必要です。Google Chromeのデバッグツール領域で確認できますが、XPathをコピーする方法がわかりません。
完全なXPathをコピーする方法はありますか?
回答:
$x
Chrome JavaScriptコンソールで使用できます。拡張は必要ありません。
例: $x("//img")
また、Webインスペクタの検索ボックスはxpathを受け入れます
Ctrl+Space
は明らかにしない$x
。入力するだけで$x
、どのように達成されるかを確認できます。したがって、OPは、彼らが望むものを達成する方法を決定できるはずです。例えば; document.evaluate('//h1', document, null, XPathResult.STRING_TYPE, null).stringValue
ノードを右クリック=> "XPathをコピー"
XPath Helper拡張機能が必要なことを実行します:https : //chrome.google.com/webstore/detail/hgimnogjllphhhkhlmebbmlgjoejdpjl
現在、Chromeで拡張機能は必要ありません。xpathを適用する要素を右クリックして[要素の検査]をクリックし、インスペクタ内でもう一度要素を右クリックして[Xpathのコピー]をクリックします。
Google Chromeは、「Chrome DevTools」と呼ばれる組み込みのデバッグツールを提供します。これには、サードパーティの拡張機能なしでXPath / CSSセレクターを評価または検証できる便利な機能が含まれています。
これは、次の2つの方法で実行できます。
要素パネル内の検索機能を使用して、XPath / CSSセレクターを評価し、DOM内の一致するノードを強調表示します。評価と検証の両方を行うコンソールパネルでトークン$ x( "some_xpath")または$$( "css-selectors")を実行します。
要素パネルから
F12キーを押してChrome DevToolsを開きます。
要素パネルはデフォルトで開かれるべきです。
パネルでDOM検索を有効にするには、Ctrl + Fを押します。
評価するXPathまたはCSSセレクターを入力します。
一致する要素がある場合、それらはDOMで強調表示されます。ただし、DOM内に一致する文字列がある場合、それらも有効な結果と見なされます。たとえば、CSSセレクターヘッダーは、要素のみではなく、ヘッダーという単語を含むすべて(インラインCSS、スクリプトなど)と一致する必要があります。
コンソールパネルから
F12キーを押してChrome DevToolsを開きます。
コンソールパネルに切り替えます。
XPathを入力して、$x(".//header")
評価と検証を行います。
$$("header")
評価および検証するCSSセレクターを入力します。
コンソール実行から返された結果を確認します。
要素が一致した場合、それらはリストで返されます。それ以外の場合は、空のリスト[]が表示されます。
$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.
任意の要素のxpathを見つける簡単な式を教えてください。
1-ブラウザでサイトを開く
2-要素を選択して右クリックします
3-要素検査オプションをクリック
4-選択したhtmlを右クリック
5- xpathをコピーするオプションを選択する
このビデオリンクはあなたのために役立ちます。 http://screencast.com/t/afXsaQXru
注:xpathの詳細オプションについては、htmlの正規表現またはパターンを知っている必要があります。
$x('//*[@id="answer-33492958"]/table/tbody/tr[1]/td[1]/div/a[1]')[0].click();
xpathOnClickはあなたが探しているものを持っています:https ://chrome.google.com/extensions/detail/ikbfbhbdjpjnalaooidkdbgjknhghhbo
コメントを読んでも、実際にはxpathを取得するには3回のクリックが必要です。
たとえばChromeの場合:
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
変更を加える場合:
XPathを適用する要素を右クリックすると、それをコピーするためのメニュー項目が表示されます。これは、OPが投稿した時点では存在していなかったかもしれませんが、現在は確かに存在しています。
私は利用可能なほとんどすべての拡張機能を試してみましたが、以下が最良の拡張機能の1つであることがわかりました。
FirePathと同様に、この拡張機能はInspectをクリックしたときに直接Xpathを提供します。
この拡張機能を使用すると、IDまたはクラスに基づいてxpathが生成されます。これは、おそらく使用したいものです。
ブラウザーのアイコンをクリックすると、パネルがページの右隅に表示されます。次に、[検査の開始]をクリックし、任意の要素をクリックして、xpathを取得します。