如何单击动态加载表的特定行中的链接

问题描述 投票:0回答:2

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

enter image description here

表是基于最新数据动态加载的。我需要点击特定行的“默认”(链接)。

例如我需要点击Trump1,Trump2行的'Default'链接。

我该怎么办?默认链接的所有定位器都是相同的,我无法区分它们。有没有我可以将First Name定位器附加到Default以确定要单击哪个定位器?

Tokci

selenium automated-tests silktest
2个回答
1
投票

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

  1. 找到您要查找的行中容易找到的单元格,例如//WPFDataGridCell[@text='Obama']
  2. 从该单元格中,使用..向上移动层次结构一步。
  3. 现在你在正确的WPFDataGridRow中,再次向下搜索与//WPFHyperLink[@caption='Default']一行的“默认”链接。

总而言之,你会得到像//WPFDataGridCell[@text='Obama']/..//WPFHyperLink[@caption='Default']这样的定位器。

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


2
投票

SilkTest有一个支持这种自定义控件的框架和一个很好的教程here理论上你必须:

  1. 列出控件上的所有方法
  2. 从上一个列表(或与开发人员交谈)中查找访问控件内部行的方法
  3. 过滤您的行并获得您感兴趣的行
  4. 从行开始,您可以按照相同的模式获取单元格(找出可以访问它的方法,获取它,过滤)
  5. 点击链接

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

© www.soinside.com 2019 - 2024. All rights reserved.