使用IE开发工具查找元素的XPath

17

是否有办法使用IE开发者工具找到元素的XPath?


2
IE不支持XHTML,所以我认为这是不可能的。 - EricLaw
4个回答

7

4
这篇文章建议当你开启“通过点击选择元素”的选项时,IE开发者工具栏可以显示你所点击的元素的XPath。另外,此文还提供了两种替代方案:书签脚本和IE DebugBar。 http://blog.balfes.net/?p=62 同样地,这篇文章也提供了IE浏览器中类似于Firebug的“复制XPath”功能的替代方案:书签脚本或使用IE DebugBar。 Equivalent of Firebug's "Copy XPath" in Internet Explorer?

已经尝试过两种方法,但是不知何故书签工具并没有起作用。我也无法通过点击选项或调试工具栏来获取选择元素的xpath。 - user3251882

2
您可以使用名为SWD Page Recorder的工具在IE以及其他浏览器中查找/调试XPath/CSS定位器。
唯一的限制/限制是:
  1. 浏览器应从该工具启动
  2. Internet Explorer Driver Server - IEDriverServer.exe - 应单独下载并放置在SwdPageRecorder.exe旁边

1

你是否正在寻找在IE中获取xpath的解决方案?

其他浏览器有很多插件,例如xpather适用于Chromexpatherxpath-checker和firebug适用于FireFox,它们可以在一秒钟内提供元素的xpath。但遗憾的是,没有可用的插件或工具可以在IE中实现这一点。对于大多数情况,您可以使用上述Firefox工具获取脚本中的元素xpath,并进行微调(如果需要)以使其在IE中运行。

但是,如果您正在测试仅适用于IE或该元素打开/播放的特定场景或页面的应用程序,则无法使用上述提到的任何工具查找XPATH。在这种情况下唯一可行的方法是为此目的编码的Bookmarklets。 Bookmarklets是JavaScript代码,您将其添加到IE中作为书签,稍后用于获取所需元素的XPATH。使用这些工具,您可以像使用xpather或任何其他Firefox附加组件一样轻松地获取XPATH。
安装Bookmarklets的步骤如下:
1)打开IE
2)在地址栏中输入about:blank并按Enter键
3)从收藏夹主菜单中选择 ---> 添加收藏夹
4)在"添加收藏夹"弹出窗口中输入名称GetXPATH1。
5)单击"添加"按钮
6)打开收藏夹菜单,右键单击新添加的收藏夹,并选择"属性"选项。
7)GetXPATH1属性将打开。 选择Web文档选项卡。
8)在URL字段中输入以下内容。
javascript:function getNode(node){var nodeExpr=node.tagName;if(!nodeExpr)return null;if(node.id!=''){nodeExpr+="[@id='"+node.id+"']";return "/"+nodeExpr;}var rank=1;var ps=node.previousSibling;while(ps){if(ps.tagName==node.tagName){rank++;}ps=ps.previousSibling;}if(rank>1){nodeExpr+='['+rank+']';}else{var ns=node.nextSibling;while(ns){if(ns.tagName==node.tagName){nodeExpr+='[1]';break;}ns=ns.nextSibling;}}return nodeExpr;}

9)点击确定。在弹出的警告框中点击“是”。

10)按照步骤3到5再添加一个收藏夹,将其命名为GetXPATH2(步骤4)。

11)重复步骤6和7,针对刚刚创建的GetXPATH2。

12)在GetXPATH2的URL字段中输入以下内容。

javascript:function o__o(){var currentNode=document.selection.createRange().parentElement();var path=[];while(currentNode){var pe=getNode(currentNode);if(pe){path.push(pe);if(pe.indexOf('@id')!=-1)break;}currentNode=currentNode.parentNode;}var xpath="/"+path.reverse().join('/');clipboardData.setData("Text", xpath);}o__o();

13) 重复第9步。

你已经完成了所有步骤!

现在要获取元素的XPATH,只需用鼠标选择该元素。这将涉及到在元素(链接、按钮、图像、复选框、文本等)开始之前单击左键,并将其拖动到元素结束为止。一旦你这样做了,首先从收藏夹菜单中选择喜欢的GetXPATH1,然后选择第二个喜欢的GetXPATH2。此时您将获得一个确认,点击允许访问按钮。现在打开记事本文件,右键并选择粘贴选项。这将给您所需元素的XPATH。


尝试过这个,但没有任何反应。在开发工具上时,GetXPATH2会生成一个错误SCRIPT5007:无法获取未定义或空引用的属性'createRange'。在另一个站点和元素上再次尝试,它可以正常工作,因此似乎取决于您正确选择它/您要执行操作的站点。可能只是我的设置问题? - ono2012
2
谢谢您的回答,但在IE11上无法工作。我已经按照这些确切的步骤进行了操作。您能帮忙吗? - user3251882
SCRIPT5007: 无法获取未定义或为空引用的 'createRange' 属性... 在ie 11中出现此错误 - Vishav Gupta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接