如何在动态加载的特定行中单击 link table

How to click on a link in a specific row of dynamically loaded table

我在 WPF 应用程序中有一个类似于下面的 table。 我们使用 VB.NET 使用 Silk Test 17.5。

Table是根据最新数据动态加载的。 我需要点击特定行的 'Default' ( Link)。

例如我需要单击 'Default' link 以获取 Trump1 和 Trump2 行。

我应该怎么做?默认 links 的所有定位器都是相同的,我无法区分它们。 有什么我可以将名字定位器附加到默认值以确定要单击哪个定位器吗?

托克奇

SilkTest 有一个支持此类自定义控件的框架和一个不错的教程 here 理论上你必须:

  1. 列出控件上的所有方法
  2. 从前面的清单(或通过与开发人员交谈)查找访问控件内行的方法
  3. 过滤您的行并选择您感兴趣的行
  4. 您可以按照相同的模式从行中获取单元格(找出访问它的方法,获取它,过滤)
  5. 点击Link

当然,正如本教程告诉您的那样,如果您不想总是进行这些迭代,您应该创建一些更高级别的实用程序,以便您可以立即获取 Cell。示例:GetGridViewRowCell(gridView, cellRow, cellColumn) 其中 cellRows 可以是更复杂的过滤器对象,您可以在其中描述哪个单元格必须具有哪个值才能识别正确的行

假设 table 具有类似于 HTML 的层次结构,您应该能够执行以下操作:

  1. 在您要查找的行中找到一个容易找到的单元格,例如//WPFDataGridCell[@text='Obama'].
  2. 从该单元格开始,使用 .. 在层次结构中向上移动一级。
  3. 现在您位于正确的 WPFDataGridRow 中,再次向下搜索 "Default" link 行 //WPFHyperLink[@caption='Default']

将它们放在一起,您将得到一个像 //WPFDataGridCell[@text='Obama']/..//WPFHyperLink[@caption='Default'] 这样的定位器。

当然这只是基于您提供的信息的示例,因此如果您尝试,请确保使用 Silk Test 的定位器间谍选择属性以确保您获得正确的值。