有没有办法在谷歌浏览器中获取xpath?

Geo*_*F67 323 google-chrome google-chrome-devtools

我有一个我想要与YQL一起使用的网页.但我需要特定项目的xpath.我可以在调试工具区域看到谷歌浏览器,但我没有看到复制该xpath的方法.

有没有办法复制完整的xpath?

Mat*_*ito 538

您可以$x在Chrome javascript控制台中使用.无需扩展.

例如: $x("//img")

Web检查器中的搜索框也将接受xpath

  • 他问"如何获取元素的xpath字符串?",而不是"我如何通过xpath选择?" 不是吗? (93认同)
  • @huyz - 有类似的功能可用.请参阅https://developers.google.com/chrome-developer-tools/docs/console.$ 0特别有用:您在DOM工具中选择的最后一个元素.$($ 0)使它成为一个jQuery对象(如果jQuery可用).此外,文章没有提到副本($ 0),它复制到剪贴板.(顺便说一下,*I*刚刚发现了$ x,并找到了这个帖子,因为我试图在控制台中使用该变量用于其他内容.) (5认同)
  • 我想Chrome复制了大部分Firebug命令行命令:http://getfirebug.com/wiki/index.php/Command_Line_API (4认同)
  • 很好——虽然我不确定这是否回答了最初的问题。你是怎么知道的?我想知道控制台中是否还有其他类似的功能可用。 (3认同)
  • 有趣的是`Ctrl + Space`不会显示`$ x`.如果你只输入`$ x`就可以看到它是如何实现的,因此OP应该能够确定如何实现他们想要的.例如; `document.evaluate('// h1',document,null,XPathResult.STRING_TYPE,null).stringValue` (3认同)

zav*_*ych 224

右键单击node =>"Copy XPath"

  • 这是获取xpath最脆弱的方式,它很可能随着内容的变化而中断 (18认同)
  • @Nate如果您希望XPath在文档更改时仍能正常工作,则没有其他替代方法.您只需要考虑它并尽量不向XPath添加多余的信息.根据经验,XPath越长,在其他环境中工作的可能性就越小. (9认同)
  • @JuanMendes有什么替代方案? (7认同)
  • 在新版本的 Google Chrome 中,您必须右键单击该节点并选择复制移至“复制”选项的 XPath 项目。 (3认同)

gre*_*pit 83

以上所有答案都是正确的,这也是屏幕截图的另一种方式.

来自Chrome:

  1. 右键单击您正在尝试查找xpath的项目上的"检查"
  2. 右键单击控制台上突出显示的区域.
  3. 转到复制xpath

在此输入图像描述


dee*_*ive 13

现在不需要chrome扩展.右键单击任何想要xpath的元素,然后单击"Inspect Element",然后再单击Inspector,右键单击元素并单击"Copy Xpath".

  • 去年发布的上一个答案中已经提到过这种方法:http://stackoverflow.com/a/11087358/938089 (10认同)

Abd*_*eed 9

让我们告诉你一个简单的公式来找到任何元素的xpath:

1-在浏览器中打开网站

2-选择元素并右键单击它

3-单击检查元素选项

4-右键单击选定的html

5-选择复制xpath的选项在需要的地方使用它

此视频链接对您有所帮助. http://screencast.com/t/afXsaQXru

注意:对于xpath的高级选项,您必须知道html的正则表达式或模式.

  • 使用Chrome控制台对此进行测试并执行以下操作:`$ x('//*[@ id ="answer-33492958"]/table/tbody/tr [1]/td [1]/div/a [ 1')[0].点击();` (3认同)

Shu*_*ain 9

谷歌浏览器开箱即用,提供了一个名为" Chrome DevTools " 的内置调试工具,其中包含一个便捷的功能,可以评估或验证没有任何第三方扩展的XPath/CSS选择器.

这可以通过两种方法完成:

使用"元素"面板中的搜索功能来评估XPath/CSS选择器并突出显示DOM中的匹配节点.在Console面板中执行令牌$ x("some_xpath")或$$("css-selectors"),它们将进行评估和验证.

从元素面板

  1. 按F12打开Chrome DevTools.

  2. 默认情况下应打开元素面板.

  3. 按Ctrl + F在面板中启用DOM搜索.

  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")
[ ]
Run Code Online (Sandbox Code Playgroud)

如果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.
Run Code Online (Sandbox Code Playgroud)

  • 在所有答案中非常有用,特别是如果您正在使用硒和机器人框架 (2认同)

Hos*_*hin 9

例如,对于 Chrome:

  1. 在您尝试查找 XPath 的项目上右键单击“检查”。
  2. 右键单击 HTML DOM 上突出显示的区域。
  3. 转到复制 > 选择“复制 XPath”。
  4. 完成上述步骤后,您将从 DOM 中获取元素的绝对 XPath。
  5. 您可以进行更改以使其与 XPath 相关(因为如果 DOM 更改,您的 XPath 仍然能够找到该元素)。

一种。为此,通过打开浏览器的“元素”面板,按 CTRL+F,粘贴 XPath。

湾 按照以下示例中的说明进行更改。

绝对 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. 仍然在 DOM 和网页上选择了 web 元素。


hos*_*ati 9

通过在控制台中突出显示的部分单击它Cntl + Shift + C
来按选择要获取的元素->XPath
right click
copycopy XPath

在此处输入图片说明


小智 8

xpathOnClick有你想要的:https://chrome.google.com/extensions/detail/ikbfbhbdjpjnalaooidkdbgjknhghhbo

但是阅读评论,实际上需要三次点击才能获得xpath.


Tri*_*cky 8

从chrome的最新更新开始,您现在可以单击元素检查器中的任何元素并将XPath复制到剪贴板.


小智 5

只需右键单击您想要 xpath 的元素,您将看到一个菜单项来复制它。当 OP 发表他的帖子时,这可能不存在,但现在肯定存在。


Iva*_*van 4

在 Firefox 的 Firebug 中,您可以在检查元素后右键单击该元素,然后选择“复制 XPath”。我无法让 ChromYQLip 顺利工作。