2

一个现有的应用程序有一个html表格,在body标签内,有多个同名的td标签

Ranorex 无法将它们全部导入存储库,因为它们都具有相同的 XPath。

如何将这些项目添加到存储库?

我尝试进行录制,自动创建的存储库仅包含一个存储库项目..

注意:我无法对应用程序进行任何更改

4

4 回答 4

1

有了更多信息,这会容易得多,比如当您将任何项目添加到存储库时,您获得的 Ranorex XPath 是什么?

此外,除了上面提到的 Max 方式之外,您将 ENTIRE 表添加到存储库,然后找到后代注意:不是子项,因为子项只能从下一个集合中找到元素,因此可能找不到您要查找的所有时间(看起来像这样):

foreach(Ranorex.TdTag tags in repo.testWebsite.tdTable.FindDescendants<Ranorex.TdTag>())
{
if(tags.TagValue.contains("<tagname>"));
{
tags.<DOSOMETHING>();
}
}

请注意,这应该遍历所有标签并为它们做同样的事情。

除此之外,虽然所有标签可能在存储库中找到并以相同的方式显示,但它们有多个,因此可以将它推到一个有根文件夹中,将整个表添加为根,然后添加td 标签作为数组项。

.//div[#'pagecontent']/div[1]/div[2]/div/div/ul/form[2]/li/input[@name='Submit']

上面的示例有多个 /div 部分,因此要确定要搜索哪个部分,请在 [#]、div[1] 或 div[2] 中输入,因为这些是您遇到的第一个或第二个 /div 标签。tdTags 的工作方式可能与您可以标记 tdtag[1]、[2]、[3] 等的方式相同,但它可能值得一试,因为它允许您创建所需的存储库项目.

我自己对此很陌生,所以假设可能是错误的。

编辑等等,Max 回答了他自己的问题吗?哈哈...

于 2013-05-07T10:46:44.657 回答
0

您必须创建一个自定义 UI 自动化提供程序来公开这些元素。查看 System.Windows.Automation.Provider 命名空间以了解详细信息。

于 2013-02-14T16:55:55.230 回答
0

方法如下:查找父元素,并在代码中使用查找子元素

这不允许您在存储库中实际添加项目,但至少您可以获取项目列表并通过遍历列表来单独访问它们!

于 2013-03-11T11:39:18.567 回答
0

我发现的最简单的方法是将单个项目添加到代表所有项目的存储库中。IE。"./Select/option" 将识别选项列表框中的所有元素,然后在用户代码中使用 repoiteminfo.createAdapters ( http://www.ranorex.com/Documentation/Ranorex/html/M_Ranorex_Core_Repository_RepoItemInfo_CreateAdapters__1.htm ) 方法创建每个元素的单独适配器

于 2013-03-28T13:48:53.443 回答