如何快速检查 IE 浏览器中的 XPath 是否有效?

14

我正在评估使用Selenium对公司的Asp.net Webforms应用程序进行自动化测试。由于大多数html ids都是自动生成的,所以我试图依靠xpaths与页面进行交互。

由于我刚接触xpaths,因此我在尝试确定需要单击此元素的确切xpath时遇到了问题。更改我的编码xpath、编译C#应用程序、加载应用程序、运行应用程序,然后让Selenium异常退出的过程变得非常烦人。我需要找到一些快速确定xpath是否有效(即存在)的方法。

不幸的是,他们编写了这个网站只能在IE上工作,所以这是我唯一可以访问的浏览器。

如果有人有一个好的快速方法可以让我在IE中测试xpath,我将非常感激!


1
你尝试过使用书签吗?请参考这里:http://www.testingdiaries.com/find-xpath-in-ie-browser/ - Moshe Slavin
6个回答

1

使用XPath可视化工具

这是一款流行的工具,多年来已经以有趣的方式向数千名开发人员教授了XPath。

您首先需要加载一个XML文件,然后可以输入任何XPath表达式,并立即在XML文档中看到所选节点被突出显示。甚至对于有经验的开发人员,还有许多其他功能。

可以从此处下载XPath可视化工具。


@KallDrexx:XPath可视化工具本身是IE的HTML页面。这意味着XPath表达式在IE下进行评估。至于通过AJAX接收到的XML,您需要使用类似JS调试器的工具,以便在接收到AJAX响应时中断并获取XML。您最初的问题是如何验证XPath表达式从XML文档中选择所需的节点,而不是如何获取该XML文档。后者根本不是XPath问题。 - Dimitre Novatchev
XML没有通过ajax接收,ajax在执行操作后向DOM添加和删除元素。这些新节点是我需要找出XPath的内容,但我无法找到任何方法在IE中导出post-ajax HTML以在此类工具中使用。 - KallDrexx
很遗憾,这个网站只能在IE浏览器中使用(公司也没有意图修复它以使其在其他浏览器中可用)。 - KallDrexx
这个工具不能按要求完成任务,它只能处理现有的静态 XML 文件,但问题是如何验证动态网页中的 XPath。 - Vince Bowdren
@vincebowdren,我理解这个问题是希望有一个工具,可以验证一个特定的XPath表达式(可能是由另一个工具生成的)在语法上是否正确,并且是否选择了所需的节点。XPath可视化工具正是做这个的。它可用于测试,在程序真正部署之前。 - Dimitre Novatchev
显示剩余5条评论

0
你可以使用我的小型Java项目Browsermator来运行/检查你的程序:https://www.browsermator.com。这将节省你一直重新运行构建的麻烦。

0
由于我对xpaths不熟悉,我在尝试定位元素时遇到了问题。更改我的编码xpath、编译C#应用程序、加载应用程序、运行应用程序,然后Selenium异常退出的过程变得非常恼人。
为此,我创建了SWD页面记录器。它可以与Selenium WebDriver支持的所有浏览器一起使用,并允许调试、测试和保存定位器以供进一步编辑。
当您下载页面记录器时,请将Internet Explorer驱动程序放在可执行文件旁边:IE驱动程序下载页面

0
在IE浏览器上按F12并复制HTML代码。然后打开记事本,粘贴HTML代码并将其另存为.html文件。最后你就拥有了这个HTML页面,可以在Firefox浏览器中使用Firebug或Firepath验证XPath。

0

你可以使用Fire-IEBrowser.xlsm这个谷歌项目应用程序,

这将帮助你在IE中找到Web元素的XPath

你可以在这里找到这个应用程序

此外,你还可以在这个答案中找到更好的解决方案


0

这篇StackOverflow帖子提供了一些在IE中查找XPath的技巧链接。

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

我特别喜欢该帖子中的这个解决方案:http://functionaltestautomation.blogspot.com/2008/12/xpath-in-internet-explorer.html

然而,为了测试/验证您从这些工具中找到的XPath或自己定义的XPath,您可能想要做类似于FirePath提供的XPath/CSS有效性验证的事情:

http://autumnator.wordpress.com/2013/05/02/testing-xpath-and-css-locators-firepath-style-across-browsers/


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