【发布时间】:2011-07-10 03:58:53
【问题描述】:
有人可以为 IE 推荐一个 xpath 生成器(免费),类似于 Firefox 中的 xpather (http://xpath.alephzarro.com/)。我正在尝试使用 selenium,而我正在处理的应用程序仅在 IE 中打开。
有 IE 的 xpath 生成器吗?
谢谢
【问题讨论】:
标签: internet-explorer xpath selenium
有人可以为 IE 推荐一个 xpath 生成器(免费),类似于 Firefox 中的 xpather (http://xpath.alephzarro.com/)。我正在尝试使用 selenium,而我正在处理的应用程序仅在 IE 中打开。
有 IE 的 xpath 生成器吗?
谢谢
【问题讨论】:
标签: internet-explorer xpath selenium
这几乎是this StackOverflow question 的副本,@PhiLho 提供了一个很好的答案——他提供了“源代码”来创建两个 IE 小书签,以获取 IE 中大多数东西的 XPath几次点击。
然而,这里值得一提的是Software Functional Test Automation 上的一篇非常好的博客文章,如果你对书签不太熟悉,它会指导你如何实施 PhiLho 的解决方案。
【讨论】:
【讨论】:
在 IE 中你需要安装 Bookmarklets。
安装书签的步骤
1)打开IE
2) 在地址栏中输入 about:blank 并回车
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)对刚刚创建的 GetXPATH2 重复步骤 6 和 7。
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。
【讨论】:
关于获取IE xpath的脚本,很精彩。但是,它不像 Firefox 上的 Firebug 那样简单有用。关于 IE 中的脚本,几乎不可能在框架(如 iframe)内获取提交按钮 xpath 或 xpath。
只是想知道新版本的 IE 是否会对 xpath 有很好的支持。
【讨论】: