【问题标题】:How can I quickly check if a xpath is valid in IE?如何快速检查 xpath 在 IE 中是否有效?
【发布时间】:2020-02-20 09:01:25
【问题描述】:

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

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

不幸的是,他们将这个网站编码为只能在 IE 中运行,所以这就是我可以访问的全部内容。

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

【问题讨论】:

标签: internet-explorer xpath selenium


【解决方案1】:

使用XPath Visualizer

这是一个流行的工具,多年来它已将 XPath 以有趣的方式传授给了成千上万的开发人员。

您首先加载一个 XML 文件,然后可以输入任何 XPath 表达式并立即在 XML 文档中看到选定的节点。还有更多功能,即使对于经验丰富的开发人员也是如此。

XPath Visualizer 可以下载here

【讨论】:

  • 如何将当前页面导出为xml?由于在某些 ajax 发生之前我要查找的元素不在页面上,因此我不能只导出 View->Source
  • @KallDrexx:你需要一些浏览器工具,这不是 XPath 问题。
  • 虽然如此,但这并不能解决我在原始问题中提出的问题。我需要一些方法在 IE 中获取我的页面并验证 Xpath 是否可以使用它。
  • @KallDrexx:XPath Visualizer 本身就是一个 IE html 页面。这意味着,XPath 表达式是在 IE 下计算的。对于通过 AJAX 接收的 XML,需要使用类似于 JS 调试器的工具,以便在接收到 AJAX 响应的位置处中断,然后获取 XML。您最初的问题是如何验证 XPath 表达式是否从 XML 文档中选择了所需的节点,而不是如何获取该 XML 文档。后者根本不是 XPath 问题。
  • XML 不是通过 ajax 接收的,ajax 是在操作之后从 DOM 中添加和删除元素。这些新节点是我需要找出 XPath 的原因,我找不到任何方法来导出 IE 中的后 ajax HTML 以在这样的工具中使用。
【解决方案2】:

这篇 StackOverflow 帖子包含一些在 IE 中查找 XPath 的技术的链接。

Finding an elements XPath using IE Developer tool

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

但是,要测试/验证您的 XPath,无论是从此类工具中找到的还是您自己定义的,您可能都想做这样的事情(如果您正在考虑类似于 FirePath 为 XPath/CSS 有效性验证提供的东西) :

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

【讨论】:

    【解决方案3】:

    据我所知 xpaths,我在试图查明 确切的 xpath 我需要单击此元素。改变的过程 我的编码 xpath,编译我的 C# 应用程序,加载应用程序,运行应用程序, 那么让 Selenium 异常出来就变得很烦人了。

    我为此创建了SWD Page Recorder。 它可以与 Selenium WebDriver 支持的所有浏览器一起工作,并允许调试、测试和保存定位器以供进一步编辑。

    下载 Page Recorder 时,请将 Internet Explorer 驱动程序放在可执行文件附近:IE Driver Download page

    【讨论】:

      【解决方案4】:

      在 IE 浏览器上按 F12 并复制 html。然后打开记事本并粘贴 html 并将其保存为 .html 文件。最后你得到了html页面,然后你可以在火狐狐浏览器中打开保存的文件,用firebug或firepath验证xpath。

      【讨论】:

        【解决方案5】:

        您可以使用带有 Fire-IEBrowser.xlsm 的 google 项目应用程序,

        这将帮助您在 IE 中查找 Web 元素的 XPath

        你可以找到这个应用程序here

        另外,你可以在answer找到更好的解决方案

        【讨论】:

          【解决方案6】:

          您可以使用我的小型 Java 项目,The Browsermator,首先运行/检查您的例程:https://www.browsermator.com 它可以为您省去一直重新运行构建的麻烦。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2020-02-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-05-14
            • 2021-03-08
            相关资源
            最近更新 更多