我有一个我想要与YQL一起使用的网页。 但我需要特定项目的XPath。 我可以在Google Chrome的调试工具区域中看到它,但我没有看到复制该XPath的方法。
有没有办法复制完整的XPath?
-
如果您愿意在Chrome之外安装Firefox,则可以使用xpather扩展程序。
-
如果他愿意安装Firefox,它已经构建到Firebug中。
-
@verhogen:即使我几乎每天都在使用Firebug,我也没有意识到这一点。如果其他人对更多信息感兴趣,请点击此处:blog.browsermob.com/2009/04/…
-
我也支持这个...... Google Chrome中的Xpath Helper无法正常工作,无论是按下[Ctrl + Shift + X]快捷键还是单击黑色"X Path"按钮(通过扳手按钮)当页面中存在JS错误时,JS控制台。而且我找不到任何其他适用于Chrome的附加组件。不要下载Mozilla的"XPath Checker"插件。我也发现了附加组件的问题。确保获得"XPather"并在Firefox打开时下载(不是其他浏览器)。要使用"XPather"右键单击元素并选择"在XPather中显示"
-
现在Chrome也有一个"XPather"扩展程序。我觉得这很好。 Alt-'x'激活窗口。您可以输入xpath并查看匹配的结果。匹配结果的显示非常整洁。
-
无论如何要获得完全不依赖于id或类的xpath
您可以在Chrome javascript控制台中使用$x。无需扩展。
例如:$x("//img")
Web检查器中的搜索框也将接受xpath
-
很好 - 虽然我不确定这回答了原来的问题。你怎么知道的?我想知道控制台中是否还有其他类似的功能。
-
我想Chrome复制了大部分Firebug命令行命令:getfirebug.com/wiki/index.php/Command_Line_API
-
不确定起源。可能是在Chrome / Webkit团队中工作的人,他们需要更多类似Firebug的功能,或者可能与迁移到Chrome团队的Firebug创建者有关。无论哪种方式,它都是有用的东西。
-
他问"如何获取元素的xpath字符串?",而不是"我如何通过xpath选择?"不是吗?
-
有趣的是Ctrl+Space没有揭示$x。如果您只需输入$x就可以看到它是如何实现的,因此OP应该能够确定如何实现他们想要的效果。例如; document.evaluate('//h1', document, null, XPathResult.STRING_TYPE, null).stringValue
-
@huyz - 有类似的功能可用。请参阅developers.google.com/chrome-developer-tools/docs/console。 $ 0特别有用:您在DOM工具中选择的最后一个元素。 $($ 0)使它成为一个jQuery对象(如果jQuery可用)。此外,文章没有提到副本($ 0),它复制到剪贴板。 (顺便说一句,我刚刚发现$ x,并发现了这个帖子,因为我试图在控制台中使用该变量用于其他内容。)
-
很好的提示..它非常有用..谢谢:)
-
答案实际上甚至没有回答这个问题,或者我错过了什么?这是解决xpath,但不是检索它。以下答案是正确的,应该标记为这样。
右键单击node =>"Copy XPath"
-
这是获取xpath最脆弱的方式,它很可能随着内容的变化而中断
-
@JuanMendes有什么替代方案?
-
@Nate如果您希望XPath在文档更改时仍能正常工作,则没有简单的替代方法。您只需要考虑它并尽量不向XPath添加多余的信息。根据经验,XPath越长,在其他环境中工作的可能性就越小。
-
这不会为您提供页面上唯一元素的实际XPath。那将是非常困难的。
-
在新版本的Google Chrome中,您必须右键单击该节点,然后选择"复制转移到复制的XPath项"选项。
-
这对我来说是最简单的方法,并且使用的是62.x.x.x版
以上所有答案都是正确的,这也是屏幕截图的另一种方式。
来自Chrome:
右键单击您正在尝试查找xpath的项目上的"检查"
右键单击控制台上突出显示的区域。
转到复制xpath
XPath Helper扩展可以满足您的需求:
https://chrome.google.com/webstore/detail/hgimnogjllphhhkhlmebbmlgjoejdpjl
-
好的附加功能,效果很好。
-
有没有人知道ubuntu上的键盘命令? crtl-shift-x和command-shift-x似乎没有做任何事情
-
@xiatica,您是否尝试使用新的/刷新的标签?请注意,扩展名不适用于安装前打开的选项卡;必须刷新此类标签。
-
@asadovsky正确甚至无法打开这个东西。
-
为什么要扩展可以原生的东西...
现在不需要chrome扩展。右键单击任何想要xpath的元素,然后单击"Inspect Element",然后再单击Inspector,右键单击元素并单击"Copy Xpath"。
-
去年发布的上一个答案中已经提到过这种方法:stackoverflow.com/a/11087358/938089
谷歌浏览器开箱即用,提供了一个名为"Chrome DevTools"的内置调试工具,其中包含一个便捷的功能,可以评估或验证没有任何第三方扩展的XPath / CSS选择器。
这可以通过两种方法完成:
使用"元素"面板中的搜索功能来评估XPath / CSS选择器并突出显示DOM中的匹配节点。
在Console面板中执行令牌$ x("some_xpath")或$$("css-selectors"),它们将进行评估和验证。
从元素面板
按F12打开Chrome DevTools。
默认情况下应打开元素面板。
按Ctrl + F在面板中启用DOM搜索。
键入要评估的XPath或CSS选择器。
如果有匹配的元素,它们将在DOM中突出显示。
但是,如果DOM中存在匹配的字符串,则它们也将被视为有效结果。例如,CSS选择器标题应匹配包含单词标题的所有内容(内联CSS,脚本等),而不是仅匹配元素。
从控制台面板
按F12打开Chrome DevTools。
切换到控制台面板。
键入XPath,如$x(".//header")进行评估和验证。
键入CSS选择器(如$$("header"))进行评估和验证。
检查从控制台执行返回的结果。
如果元素匹配,它们将在列表中返回。否则显示空列表[]。
1 2 3 4 5
| $x(".//article")
[…</article>]
$x(".//not-a-tag")
[ ] |
如果XPath或CSS选择器无效,则异常将以红色文本显示。例如:
1 2 3 4 5
| $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的正则表达式或模式。
-
使用Chrome控制台对其进行测试并执行此操作以进行upvote:$x('//*[@id="answer-33492958"]/table/tbody/tr[1]/td[1]/div/a[1]')[0].click();
从chrome的最新更新开始,您现在可以单击元素检查器中的任何元素并将XPath复制到剪贴板。
xpathOnClick有你想要的:https://chrome.google.com/extensions/detail/ikbfbhbdjpjnalaooidkdbgjknhghhbo
但是阅读评论,实际上需要三次点击才能获得xpath。
-
似乎不适用于带有chrome 12.0.742.124的ubuntu 10.04,安装但是单击xpath图标,然后单击页面(第一次关闭xpath弹出窗口),然后单击页面元素(在js控制台中显示xpath) )....没有任何东西出现在控制台中。在插件网站上测试过
-
在chrome 18上根本不起作用
只需右键单击您想要xpath的元素,您将看到一个要复制它的菜单项。当裁谈会上任时,这可能不存在,但现在肯定存在。
在Firefox中的Firebug中,您可以在检查后右键单击元素,然后选择"复制XPath"。我无法让ChromYQLip顺利运作。
我尝试了几乎所有可用的扩展,并发现下面是最好的之一。
ChroPath扩展链接
就像FirePath一样,当您单击Inspect时,此扩展会直接为您提供Xpath。
稍微OT,但也许有用:在Mac Chrome上,虽然您无法在开发工具面板中将xpath复制到搜索框之外(而是复制将节点抓取为HTML),但您可以将文本拖放到外部编辑器中。
使用此扩展,它会根据id或class生成xpath,这可能是您想要使用的。
单击浏览器图标,面板显示在页面的右上角,然后单击开始检查,然后单击任何元素以获取xpath。
XPath生成器
-
不需要,因为它原生可用。此外,无需为Chrome / Firefox本身可以执行的操作下载全新的应用程序。
-
@robbyoconnor如果你做了一些黑盒测试或爬行,你就会知道浏览器生成的xpath并不稳定。
-
工作得很好。